您的位置:首页 > 编程语言 > Python开发

Python之道(1)---从Python函数参数类型说起

2017-08-02 16:21 316 查看

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函数参数排序

当定义的函数同时存在多种参数类型的时候,各种类型的参数要按照一定的顺序进行排列,具体的顺序为:

必选参数》默认参数》可变参数》关键字参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: