python学习笔记:函数参数

Posted ying_vincent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记:函数参数相关的知识,希望对你有一定的参考价值。

1. 位置参数:一般的参数

2. 默认参数:    

1 def power(x, n=2):
2     s = 1
3     while n > 0:
4         n = n - 1
5         s = s * x
6     return s

参数里有默认赋值,调用时用power(5)就是平方,如果power(5, 3)就是立方了

如果有多个默认参数,调用时前面用默认参数,后面不是用默认参数,则需要在调用语句中写出“参数名 = 参数值”,比如下面这个情况

1 def enroll(name, gender, age=6, city=Beijing):
2     print(name:, name)
3     print(gender:, gender)
4     print(age:, age)
5     print(city:, city)

enroll(‘bob‘,‘M‘,7)这样没有参数名是可以的,city就是用默认参数‘beijing‘,age没有用,enroll(‘sary‘,‘F‘,‘hangzhou‘)这样是错误的,因为‘hangzhou‘不是age,是city,因此需要这样使用:enroll(‘sary‘,‘F‘,city=‘hangzhou‘),这样age=6, city=‘hangzhou‘

3. 可变参数

1 def calc(numbers)
2       sum = 0
3       for n in numbers:
4           sum = sum + n * n
5       return sum

如果使用上面这个代码,对于一个list或者tuple输入值,比如[1,2,3],调用的时候需要这么写:calc([1,2,3])或者calc((1, 2, 3)),很麻烦

所以可变参数需要在numbers前加*

1 def calc(*numbers)
2       sum = 0
3       for n in numbers:
4           sum = sum + n * n
5       return sum

这样就可以这样调用了:calc(1, 2, 3)。

对于nums = [1, 2, 3]这个list时,如果用上面这个可变参数,则不能写成calc(nums),需要写成calc(nums[0], nums[1], nums[2])或者calc(*nums)

4. 关键字参数

1 def person(name, age, **kw)
2      print(name: ’, name, age: , age, other: , kw)

**kw是一个dict,调用语句为person(‘jackson‘, 30, gender=‘M‘, city=‘beijing‘)后,结果为name: jackson age:30 other:{‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}

对于extra = {‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}这种已经定义好的dict,可以这么调用:person(‘jackson‘, 30, **extra)

5. 命名关键字参数

这个感觉用处不大

以上是关于python学习笔记:函数参数的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记2---函数

Python学习笔记——函数

「学习笔记」3.12代码学习

python cookbook第三版学习笔记九:函数

Python学习 :函数

Python学习笔记__2.1章 调用函数