码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记:函数参数

时间:2018-04-28 15:41:09      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:extra   The   有用   jackson   alc   print   while   学习笔记   函数参数   

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学习笔记:函数参数

标签:extra   The   有用   jackson   alc   print   while   学习笔记   函数参数   

原文地址:https://www.cnblogs.com/yingzhongwen/p/8967437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!