函数是一组语句的集合,用以实现某一特定功能。函数可简化脚本,函数包括内置函数与自定义函数
自定义函数框架
在python中使用def 可以声明一个函数,完整的函数是由函数名,参数,函数体,返回值。声明函数一般形式如下
def 函数名 (参数) 函数体 return 返回值
参数和返回值不是必须的 当没有设置返回值的时候,该函数的返回值默认是null
函数调用
在python 中自定义函数与内置函数调用方法相同,只要使用函数名制定要调用的函数,然后再函数后加相应的参数即可,如果有多个参数,则不同的参数要以“,”分开。函数调用必须在申明一个函数之后才能调用
函数中的参数分类
默认参数
在python中,可以在声明函数时,预先为参数设置一个默认值。当调用函数时,如果某个参数,具有默认值,则可以不向函数传递该参数
def fun(x=5) rerurn x**3 cube(2) 定义参数时 传递参数 8 cube() 没有定义参数时,使用默认参数 125
指定参数
如果一个函数具有多个参数,并且这些参数都具有默认值,在调用函数的时候,可能仅想向最后一个参数传递值可以设置
def fun(x=1,y=2,z=3): return(x+y-z)**3 fun(0) -1 fun(3,3) 27 fun(none,none,5) -8 fun(x=2,y=3,z=5) 指定具体值,即为指定参数
动态参数
*默认输入的参数,全部放置在元祖中
def fun(*args:) print(args) fun (11,22) (11,22)
**默认输入的参数,全部放置在字典中
def fun(**args): print(args) fun(k1=11,k2=22) {k1:11,k2:22}
在同时有一个*和两个*的时候 定义默认参数时一个*一定要在前面
def fun(*args,**qwargs): print(args) print(qwargs) fun(22,33,k1=22,k2=33) (22, 33) {‘k2‘: 33, ‘k1‘: 22}
在python中 格式化输出 %s与%d 函数中也有各式话输出format()
s="i am {0},age{1}".format("alex",18) s="i am {0},age{1}".format(*["alex",18]) s="i am {name},age{age}".format(name="alex",age=18) s="i am {0},age{1}".format(**dic) s="i am alex,age 18" 输出结果
变量的作用域
在python脚本中,不同的函数可以具有相同的参数名。在函数中已经声明过变量名,在函数外还可以继续使用。而在脚本运行过程中,其值并不相互影响
在python中,作用域可以分为内置作用域和全局作用域和局部作用域,内置作用域时python预先定义的,全局作用域时所编写的整个脚本,局部作用域时某个函数内部范围。
如果在函数中使用函数外的变量,则可以在变量名前使用global关键字
def fun(x): 声明一个函数 a=[1] 定义一个名为a的列表 a.append(x) print(a) a=[2,3,4] 在函数外定义个名为a的列表 fun(2) [1,2] a 输出a的值[2,3,4] def fun(x): 声明一个函数 global a 使用global 关键字声明全局变量 return a+x a=5 fun(3) 调用函数 8 a=2 fun(3) 修改a的值 5 默认定义全局变量 全部大写 局部变量 全部小写
三元运算
if 1==1: name="alex" else: name="SB" name="alex" if 1==1 else "SB"
最简单的函数 :用lambda 表达式
用lambda 适用于定义一个小型的函数,在函数中仅能包含单一的参数表达式,而不能包含其他的语句。在lambda 中也可以调用其他的函数。
def fun(): print (‘lambda‘) f= lambda:fun() f() lambda def f1(a1): return a1+100 f2=lambda a1:a1+100 lambda 参数:函数体 ret=f1(10) print(ret)
内置函数
取绝对值 def abs() f=abs(-1) f=1 判断真假的函数 def all() 当all 的参数里全部为真时 all()为真 当 all里有一个参数为假时,即为假 f=[11,22] all(f)为turn f=[11,0] all(f)为false def any() 当any的参数里只要有真 即为真 f=[11,0] any(f) 为turn 转换进制的函数 def bin() 把接收的值转换成相应的2进制 def oct() 把接受的值转换成相应的8进制 def hex() 把接受的值转换成16相应的进制 转换字节类型,按照什么编码: def bytes() n=bytes(s,encoding="utf8") n=bytes(s,encoding="gbk")
本文出自 “故都的秋运维之路” 博客,请务必保留此出处http://7157581.blog.51cto.com/7147581/1812551
原文地址:http://7157581.blog.51cto.com/7147581/1812551