python定义函数:
定义一个函数要使用def修饰,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
如:
def add(a,b):
return a+b
可以返回多个值(实质上返回的是一个tuple)
def add(a,b):
return a,b,a+b
空函数:pass
def add():
pass
Python函数的强大在参数,相比java要强大的多但同时语法规则也会多一些规则。
1、必选参数:
调用时参数必须按声明时顺序,数量传入,不然就报错。
def add(a,b):
return a+b
2、默认参数:
调用时默认参数可传可不传,(不传时会调用默认值),如要默认有两个但只想传一个时,加上声明的的参数名即可。
def add(a,b=1,c=2):
return a+b+c
add(1,2)
add(1,c=4)
3、可变参数:
调用时可以是不定长的参数,一个,两个,零个。
def add(*numbers):
sum=0
for n in numbers:
sum=sum+n
return sum
add([1,2,3]) #这个写法是在参数不加*也可以实现不定长,但是太麻烦
add(1,2,3) #在参数前加*之后就可以这么写,简单,爽。。。
add([1,2,3]) #有list但是其他地方有不用list这么办,在调用时前面加
(*[1,2,3])表示把[1,2,3]这个list的所有元素作为可变参数传进去)
4、关键字参数:
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,可任意扩展参数
def student(name,sex,**x):
print(name,sex,x)
student("cc","男",age=1,city="北京")
5、命名关键字参数:
如果要限制关键字参数的名字, 就可以用命名关键字参数,关键字参数**x不同,命名关键字参数需要一个特殊分隔符 *,后面的参数被视为命名关键字参数。如果命名关键字前面有可变参数后面可以不加,如(def student(name,sex,*s,city=”北京”,age))命名关键字参数调用时必须要传,除了加入默认值
def student(name,sex,*,city="北京",age):
print(name,sex,city,age)
student("xiaoye","男",age=1)
student("xiaoye","男",45,age=1,city="山西")
6、参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,
这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:
必选参数、默认参数、可变参数、命名关键字参数和关键字参数
参考文章:
廖雪峰的相关文章