函数的定义python
python定义函数使用def关键字函数
return[表达式]语句用于退出函数,选择性的向调用方返回一个表达式,不带参数值的return语句返回nonespa
def 函数名(参数列表): 函数体
def get_money_fromATM(cardno,password,money): #密码要求是6位字符串类型 if type(password) is str and len(password)==6: print('密码正确') else: print('密码格式错误') #金额小于3000元的能被100整除的整数 if type(money) is int : if money%100==0 and money<=3000: print('金额正确') else: print('金额格式错误,请从新输入') get_money_fromATM(12412412412,'123456',2300) #运行结果 密码正确 金额正确
#计算面积的函数 def z(x,y): i=x*y print(i) z(2,7) #运行结果: 14
def sum(x,y): z=x+y print('函数内',z) #调用的函数中没有return表达式 z=sum(5,9) print('函数外',z) #运行结果 函数内 14 函数外 None
def sum(x,y): z=x+y print('函数内',z) return z #调用的函数中没有return表达式 z=sum(5,9) print('函数外',z) #运行结果 函数内 14 函数外 14
可变参数3d
def sum(*lst): 参数前面加一个星号,表示这个参数是可变的,也就是说能够接受多个参数,将这些参数构成一个元组,只能经过为止参数传参code
可变参数有两种形式:对象
当默认参数和可变参数一块儿出现的时候,默认参数至关于普通参数blog
一般来讲:字符串
keyword-only: 必须以Key->Value对的形式出现的,叫作keyword-onlyget
参数的传递class
传递不可变对象实例
def jiaohuan(m,n): temp=m m=n n=temp return a=2 b=3 print(a,b) jiaohuan(a,b) print(a,b) #运行结果 2 3 2 3
调用函数时可以使用的正式参数类型:必需参数、关键字参数、默认参数、不定长参数
必需参数
必需参数须以正确的顺序传入函数。调用时的数量不须和声明时的同样
调用printme函数,必须传入一个参数,否则会出现语法错误
def printme(str): "打印任何传入的字符串" print(str) printme("调用printme函数") #运行结果 调用printme函数
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来肯定传入的参数值
使用关键字参数容许函数调用时参数的顺序与声明时不一致,由于python解释器可以用参数名匹配参数值
def printme(str): "打印任何传入的字符串" print(str) printme(str="调用printme函数") #运行结果 调用printme函数
参数的默认值
def inc(base,x=1): 给第二个参数设置一个默认值,如果不传递参数,则使用默认的参数值,如果传递参数,则使用传递的参数值
默认参数
调用函数时,若是没有传递参数,则会使用默认参数,默认参数只能放在参数列表的最后一个,但能够有多个默认参数
def sum(name,age=50): print(name,age) name='白云' age=45 sum(name,age) #运行结果 白云 45
不定长参数
你可能须要一个函数能处理比当初声明时更多的参数,这些参数叫作不定长参数,声明时不会命名
加了星号的变量名会存放全部未命名的变量参数。若是在函数调用时没有指定参数,它就是一个空元组,咱们也能够不向函数传递未命名的变量
def printinfo(str,*varchar): '打印任何输入的字符串' print('输出:') print(str) for var in varchar: print(var) #调用函数printinfo printinfo(10) printinfo(70,60,50,40,30) #运行结果 输出: 10 输出: 70 60 50 40 30
匿名函数
python使用laabda来建立匿名函数
所谓匿名,即再也不使用def语句这样标准的形式定义一个函数
sum=lambda x,y:x+y print(sum(1,2)) #运行结果 3