Python参数分类:
- 必选参数
- 默认参数
- 可变参数
- 关键字参数
1.必选参数
程序示例:
def student(name,gender,grade,age=7,nation='China'):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
student('ding','man','six',8)
输出结果:
C:\Users\dingz\AppData\Local\Programs\Python\Python35\python.exe D:/Code/Python/Start/TestDemo/函数参数.py
name: ding
gender: man
grade: six
age: 8
nation: China
上面示例中三个形参name,gender,grade,属于必须按参数,调用函数时必须进行赋值,不然程序就无法运行。顾名思义,必选参数也就是必须进行赋值的参数。
2.默认参数
程序示例:
def student(name,gender,grade,age=7,nation='China'):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
student('ding','man','six',8)
输出结果:
C:\Users\dingz\AppData\Local\Programs\Python\Python35\python.exe D:/Code/Python/Start/TestDemo/函数参数.py
name: ding
gender: man
grade: six
age: 8
nation: China
上面定义students函数的参数age=7,nation=’China’即为默认参数。顾名思义,默认参数一般会有默认的值,当函数调用不对默认参数进行赋值时,会使用默认的值,当你对它进行赋值,他就会使用所赋的值。如例子中的形参age和nation。形参要按顺序进行输入。
注意:默认参数一定要用不可变对象,如果使用列表等可变元素,运行时可能会有逻辑错误。
3.可变参数
可变参数顾名思义就是传入的参数个数是可以改变的,可以是0个,1个,2个……
程序示例:
def sumplus(*num):
sum=0
for i in num:
sum=sum+i
# print(sum)
return sum
sumplus(1,2,3,4)
print(sumplus(1,2,3,4,5,7))
如上,在参数前面加上“*“就表示可变参数,也可以将列表或者元组作为参数传递,不过在列表或者元组名称之前要加上星号.
程序示例:
def sumplus(*num):
sum=0
for i in num:
sum=sum+i
# print(sum)
return sum
sumplus(1,2,3,4)
print(sumplus(1,2,3,4,5,7))
nums=[1,2,3,4,5,6,7,8,9]
print(sumplus(*nums))
输出
22
45
4.关键字参数
关键字参数即带参数名的参数,这些关键字参数在函数内部会组装成一个字典格式的数据。在参数名之前加**,即两个星号。
程序示例:
def student(name,gender,grade,age=7,nation='China',**info):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
print("more: ",info)
student('yy','male','six',live_city='Beijing')
输出:
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_city': 'Beijing'}
也可以先构建一个字典,再把字典转换成关键字参数传进函数中。
程序示例:
def student(name,gender,grade,age=7,nation='China',**info):
print("name: ",name)
print("gender: ",gender)
print("grade: ",grade)
print("age: ",age)
print("nation: ",nation)
print("more: ",info)
info={'live_city':'Beijing','live_xiaoqu':'tiananmen'}
student('yy','male','six',live_city=info['live_city'],live_xiaoqu=info['live_xiaoqu'])
student('yy','male','six',**info)
结果:
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}
name: yy
gender: male
grade: six
age: 7
nation: China
more: {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}
Python函数参数排序
当定义的函数同时存在多种参数类型的时候,各种类型的参数要按照一定的顺序进行排列,具体的顺序为:
必选参数》默认参数》可变参数》关键字参数