函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地址 func() v1() # v1 } print(info) 2 函数也可以当作参数来进行传递 def func(arg): print(arg) func(1) func([1,2,3,4]) def show() = func_list[2](1,2) print(v3) 总结: 列表所有方法基本上都是返回None,字符串的所有方法基本上都是返回新值。 3. 内置函数 函数分为:自定义函数 和 内置函数 目前python的内置函数分为几大类: 1.强制转换 bool() / int() / str() / list() / dict() /tuple()
但也可以自己创建函数,这被叫做用户自定义函数。 ---- 函数定义 ---- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。 函数调用 ---- 定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。 a = 100 # 调用changeme函数b = 89mylist = [1,2,3]cme( 89,mylist )print ("函数外取值: ", mylist)print ("b的值:",b)
函数 >>> def ds(x): return 2 * x + 1 >>> ds(5) 11 >>> lambda x : 2 * x + 1 <function <lambda> at 0x035C65D0> >>> a = lambda x : 2 * x + 1 #lambda关键字来创建匿名函数 >>> a (5) 11 >>> def add(x,y): return x + y >>> add(3,4) 7 >>> b = lambda x,y : x + y >>> b(3, 4) 7 >>> list 5, 7, 9] >>> list(filter(lambda x : x % 2, range(10))) [1, 3, 5, 7, 9] >>> list(map(lambda x : x * 2 , range(10))) #map() 会根据提供的函数对指定序列做映射 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
其实,上述的这一类的需求呢,我们通过 MySQL 中的函数都可以很方便的实现 。 MySQL 中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。 2. : 2. lower : 全部转小写 语法: select lower('Hello'); 执行结果: 3. upper : 全部转大写 语法: select upper('Hello'); trim(' Hello MySQL '); 结果显示: 7. substring : 截取子字符串 语法: select substring('Hello MySQL',1,5); 结果显示: 3. curtime(); 结果显示: 3. now:当前日期和时间 语法: select now(); 结果显示: 4. 流程函数 流程函数也是很常用的一类函数,可以在 SQL 语句中实现条件筛选,从而提高语句的效率。
Mysql常用函数的汇总,可看下面文章 https://www.cnblogs.com/poloyy/p/12890763.html ifnull 的作用 可以判断某个字段的值是否为 null,为 null 则返回预先设定的值;有点像编程里面的三元表达式(只可意会不可言传,不懂三元表达式就忽略吧~) if 的语法格式 IFNULL(v1,v2) 语法格式说明 如果 v1 不为 NULL,则 IFNULL 函数返回
和函数一起使用,可以使函数中断并保存函数的中断状态,yield,可以减少程序的阻塞 例子: def run(): print "test1" yield 1 函数: 函数中可以直接修改全局的列表 字典等复杂的数据类型。 lambda函数(匿名函数): def f(x): return x**2 g = lambda x:x**2 匿名函数的写法 print map(f,range(10)) 把列表输入函数运算 ,再返回结果 print map(lambda x:x**2,range(10)) sorted()用法:例子是对字典key进行排序(虽然字典是无序的) dic1={3:2,4:3,6:9,'a': ] b=[5,6,7,8,9,10] zip(a,b) [(1,5),(2,6),(3,7),(4,8)] map(None,a,b) [(1,5),(2,6),(3,7),(4,8),(none,9
函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 >>> a = {1,2,3,4} >>> b ={3,4,5,6} >>> a {1, 2, 3, 4} >>> type(a 3.返回值 要想获取函数的执行结果,就可以用return语句把结果返回 注意: 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束 print("第3层打印",name) change_name2() #调用内层函数 print("第2层打印",name) change_name() print 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.
位置参数:sys.argv[XX] 代码名称、函数、变量不可以与系统默认参数、模块名字相同 if __name__ == '__main__': __name__: 在主动调用的时候返回__ 前向引用: def foo(): print('in foo') bar() #此时函数的内容并没有执行,当调用的时候才开始真正的执行函数 #foo () 如果这个时候调用foo()函数的话,会报错,因为bar函数还没有生成 def bar(): print('in bar') foo() 内部函数/内嵌函数: bar()只能在foo函数内部调用,foo函数结束bar则结束,类似于局部变量的意思 函数操作符: 使用一对圆括号()调用函数,如果没有圆括号,只是对函数的引用 任何输入的参数都必须放置在括号中 调用:把函数执行一遍 引用:把函数本身指向引用者 >>> def func(): ...
/usr/bin/python3 # 定义函数 def printme( str ): # 打印任何传入的字符串 print (str) return # 调用函数 printme("我要调用用户自定义函数 再次调用同一函数 ---- 参数传递 在 python 中,类型属于对象,变量是没有类型的: a=[1,2,3] a="Runoob" 以上代码中,[1,2,3] 是 List 类型,"Runoob" /usr/bin/python3 # 可写函数说明 def changeme( mylist ): "修改传入的列表" mylist.append([1,2,3,4]) print ("函数内取值 故输出结果如下: 函数内取值: [10, 20, 30, [1, 2, 3, 4]] 函数外取值: [10, 20, 30, [1, 2, 3, 4]] ---- 参数 以下是调用函数时可使用的正式参数类型 ) print (vardict) # 调用printinfo 函数 printinfo(1, a=2,b=3) 以上实例输出结果: 输出: 1 {'a': 2, 'b': 3} 声明函数时,参数中星号
python函数。 python函数 #! 1) =', quadratic(2, 3, 1)) print('quadratic(1, 3, -4) =', quadratic(1, 3, -4)) if quadratic(2, 3, 1 =', kw) def f2(a, b, c=0, *, d, **kw): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) 在函数调用的时候 = 99 kw = {'ext': None} 最神奇的是通过一个tuple和dict,你也可以调用上述函数: >>> args = (1, 2, 3, 4) >>> kw = {'d': 99, ' 3) >>> kw = {'d': 88, 'x': '#'} >>> f2(*args, **kw) a = 1 b = 2 c = 3 d = 88 kw = {'x': '#'} 所以,对于任意函数
函数功能: waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms 返回值为当前键盘按键值 1、waitKey()–是在一个给定的时间内(单位ms)等待用户按键触发; 则表示程序会无限制的等待用户的按键事件 一般在imgshow的时候,如果设置waitKey(0),代表按任意键继续 2.显示视频时,延迟时间需要设置为 大于0的参数 delay>0时,延迟”delay”ms,在显示视频时这个函数是有用的 , 用于设置在显示完一帧图像后程序等待”delay”ms再显示下一帧视频; 如果使用waitKey(0)则只会显示第一帧视频 3.这样的代码: if cv2.waitKey(100) == 27 print 'wait 100 ms' pass 等待用户触发事件,等待时间为100ms, 如果在这个时间段内, 用户按下ESC(ASCII码为27),执行if体 如果没有按,if函数不做处理
Python3 函数 函数文字定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段;函数能提高应用的模块性,和代码的重复利用率。 输出 [6, 7, 4, 3, 8] # 示例3,默认值只分配一次 #! (x,y) calc(2,5) 输出 x+y: 7 x-y: -3 # 返回值为函数本身 #! (x,y) return mul # 返回 mul函数本身,可以赋给变量 calc(3,5) 输出 x+y: 8 x-y: -2 <function __main__.calc. <locals>.mul(x, y)> c = calc(3,5) # c 被赋值为mul函数 输出 x+y: 8 x-y: -2 闭包 函数返回值为内部函数的名字,内部函数又处理外层函数变量;这个整体叫闭包
一些函数(比如 barbs,quiver,streamplot)使用的是向量数据,要求向量分量是地图坐标系(比如 u 是左右方向,v 是上下方向)。 y3 = map(45, 45) plt.plot([x1, x2, x3], [y1, y2, y3], color='k', linestyle='-', linewidth=2) ax1 = 注意结果和预期不同,因为经度在正确区间外 shiftgrid 此函数和 shiftdata 方法类似。向西或向东以东所有经度和数据。 basemap.shiftgrid(lon0, datain, lonsin, start=True, cyclic=360.0) 注意这不是 basemap实例方法,而是basemap模块中的函数 lon 如果 lon0是经度的初始点或是输出数组的最后一个点,要设置 start cyclic 设置经度值,经度在[0 lon0]区间 函数返回被排序后的数据和转换后的经度 注意: 和 shiftdata 的主要差异是
分类: 内建函数 自定义函数 说明: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数 函数的第一行语句可以选择性地使用文档字符串 —用于存放函数说明 函数内容以冒号起始,并且缩进 return [表达式] 结束函数,选择性地返回一个值给调用方。 示例3(有返回值函数): #! ); 代码截图3: ? 运行截图3: ?
定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 world 再来个实例: def fun(a, *hehe, **hahaha): print("{0}--{1}--{2}".format(a, hehe, hahaha)) fun(1,2,3,4,5 ,x=1,y=2) 输出: 1--(2, 3, 4, 5)--{'x': 1, 'y': 2} 分析: 我使用了–来分割,可以看出来其中的赋值如下: a = 1 hehe = 2, 3, 4, 5 : def plus(a,b,c): return a+b+c print(plus(1,2,3)) ## 匿名函数 aa = lambda x,y,z:x+y+z print(aa(3,3,3 无参数匿名函数: t = lambda : True print (t) 输出: True 默认参数: lambda x,y=3: x*y #允许参数存在默认值 a = lambda *z:z #*z
: def plus(a,b,c): return a+b+c print(plus(1,2,3)) ## 匿名函数 aa = lambda x,y,z:x+y+z print(aa(3,3,3 分析: ##申明一个函数,第一个参数是整形,第二个参数是list ##l的默认值是空 也就是说当传入的参数为2的时候此时的l值为空,输出的值为 [0, 1] 但是当x传入3,l传入[3,2,1]的时候, [3, 7, 11, 15, 19] map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串: () reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是: reduce(f, [x1, x2 y print(reduce(add, [1, 2, 3, 4])) 输出: 10 当然求和运算可以直接用Python内建函数sum(),没必要动用reduce。
概述 我们将用几节来学习Go语言基础,本文结构如下: 函数 -多值返回 -可命名结果形参 -Defer 函数 函数的基本语句结构: func DoSome(a int ) string { return "do" } func 是关键字,表示函数的开始。 返回值写在函数的参数的括号后面,上面的例子返回值是 string 多值返回 函数和方法可返回多个值: func Write(b []byte) (int, error) 上面的返回值,声明返回的是 int 比如: func nextInt(b []byte, pos int) (value, nextPos int) { 命名后,一旦该函数开始执行,它们就会被初始化为与其类型相应的零值; 若该函数执行了一条不带实参的 也可理解为 推迟执行函数。被 defer 的 函数会在执行 defer 所属于的函数返回之前 “立即执行"。 例如无论以何种路径返回,都必须释放资源的函数。
自定义函数: def myfun(args1,args2): 函数体 return value def get_info(): userinfo = {} with open("info.txt [line[0]] =line[1] else: pass #print("读取到空行") return userinfo 调用函数 : get_info() 递归调用:0 def move(rank,s1,s2,s3): if(rank == 1): print("移动%d盘子%c到%c",rank,s1,s3 ) else: move(rank-1,s1,s3,s2) print("移动%d盘子%c到%c", rank, s1, s3) move(rank -1,s2,s1,s3) move(3, 'A', 'B', 'C')
l1 = [1, 2, 3, 4, 5, 'a', 'b', 'c', 'abc', 10] def my_len(): # def关键字 定义一个函数 # my_len函数名的书写规则与变量一样 ['a','b'],2,3,4 print(tmp_demo2()) 输出结果 (1, ['a', 'b'], 2, 3, 4) 函数的传参 def my_len(l): # l形式参数,形参 例子 def func(a,b,c): print(a) print(b) print(c) func(2,3,4) 输出结果 2,3,4 实例:写一个函数,功能比大小,大的返回 ) 执行结果 3 三元运算 简单的if和else判断,就可以用三元运算 上面函数的简写 def max_min(a,b): z = a if a > b else b return func1(argv):return argv[1::2] # print(func1((1,2,3,4,5,6,7,8,9))) # 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于
之前的几篇文章中,总结了java中的基本语句和基本数据类型等等一系列的最基本的东西,下面就来说说java中的函数部分 函数基础 在C/C++中有普通的全局函数、类成员函数和类的静态函数,而java中所有内容都必须定义在类中 所以Java中是没有全局函数的,Java里面只有普通的类成员函数(也叫做成员方法)和静态函数(也叫做静态方法)。 其中重点需要关注前3个部分。 栈:与C/C++中栈的作用相同,就是用来保存函数中的局部变量和实参值的。 下面再来看一个例子: class Demo{ public static void main(String[] args){ int[] array = new int[]{1, 2, 3, 这段代码执行的过程中经历了3个主要步骤: new一个数组对象,并且将数组对象的地址赋值给array 实参 调用test函数时将array实参中保存的地址复制一份压入函数的参数列表中 在test函数中,通过这个地址值来修改对应内存中的内容