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

来源:互联网 发布:淘宝买东西怎么评价 编辑:程序博客网 时间:2024/06/05 18:38

Python参数分类:

  1. 必选参数
  2. 默认参数
  3. 可变参数
  4. 关键字参数

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/函数参数.pyname:  dinggender:  mangrade:  sixage:  8nation:  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/函数参数.pyname:  dinggender:  mangrade:  sixage:  8nation:  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 sumsumplus(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 sumsumplus(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))

输出

2245

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:  yygender:  malegrade:  sixage:  7nation:  Chinamore:  {'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:  yygender:  malegrade:  sixage:  7nation:  Chinamore:  {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}name:  yygender:  malegrade:  sixage:  7nation:  Chinamore:  {'live_xiaoqu': 'tiananmen', 'live_city': 'Beijing'}

Python函数参数排序

当定义的函数同时存在多种参数类型的时候,各种类型的参数要按照一定的顺序进行排列,具体的顺序为:
必选参数》默认参数》可变参数》关键字参数