函数
函数定义和调用
#定义函数、调用函数
def hello():
print("Hello Python!")
hello()
def print_name(name):
print("Welcome ",name)
print_name("WG")
def area(width,height):
return width*height/2
w = 3
h = 3
print("The area is ",area(w,h))
参数传递
参数类型
有必须参数、关键字参数、不定长参数
#参数类型
#必须参数:调用时参数数量类型必须和声明时一样
def printme(str):
"打印任何传入的字符串"
print(str)
printme("str")#如果此处不加参数的话会报错
#关键字参数:调用时参数顺序可以与声明时不一致,可以通过参数名来匹配参数值
def printyou(a,b):
print(a)
print(b)
printyou(b = 1,a = "asd")
#默认参数:如果没有参数传递,就会使用默认参数
def printinfo(name,age = 12):
print("name:",name)
print("age:",age)
printinfo(age = 18,name = "wg")
printinfo(name = "ge")
#不定长参数:当需要函数能处理比当初声明时更多的参数
#加一个星号时以元组的形式导入,加两个星号时以字典的形式导入
def printinfo(arg1,*value):
print("输出:")
print(arg1)
print(value)
for var in value:
print(var)
return
printinfo(12,13,15)
printinfo(12)#注:不加后边那段for循环时不能输出空元组
return语句
就是给调用的地方返回一个表达式,不带参数值的return语句返回None。小例子:
#return语句
def sum(arg1,arg2):
total = arg1+arg2
print("函数内:",total)
return total
total = sum(10,20)
print("函数外:",total)
强制位置参数
函数形参语法:
(/)用来指明函数形参必须使用指定位置参数,不能使用关键词参数。
(*)单独出现的型号后的参数必须用关键字传入。
如:
def f(a,b,/,c,d,*,e,f)
则其中b不能使用关键字参数的形式,e、f必须使用关键字参数的形式。
f(1,2,3,4,e=5,f=6)#正确
f(1,b=2,3,4,e=5,f=6)#b不正确
f(1,2,3,4,e=5,6)#f不正确
f(1,2,3,4,5,f=6)#e不正确
匿名函数Lambda表达式
语法格式:
lambda [arg1 [,arg2,.....argn]]:expression
例子:
#lambda表达式
sum = lambda arg1,arg2:arg1+arg2
print("相加后的值为:",sum(10,20))