Python学习笔记
来源:互联网 发布:js 日期转字符串 编辑:程序博客网 时间:2024/06/15 02:22
Python学习笔记 - 函数
根据廖雪峰的Python教程做成的笔记,其中不包含全部知识点,仅是重点或是容易发生混淆或者忘记的部分。
函数
test.py
def my_abs(x) if x > 0: return x else: return -x
main.py
from test import my_absdef func(): a = -5 b = my_abs(a) print(b) return
参数
参数顺序必须是:
必选参数,默认参数,可变参数,命名关键字参数,关键字参数。
- 默认参数:(n = 0
)
def power(x, n = 2): pass
- 可变参数:(
*parm
)
定义函数时,在参数前加 *
即可
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n return sumret1 = calc(1,3,5)ret2 = calc(1,3,5,7,9)
- 关键字参数:(
**kw
)
定义函数时,在参数前加 **
即可
def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw) returnperson('Bob', 30, city = 'Beijing', mobile = '138xxxxxxx')# name:Bob age:30 other:{'city':'Beijing', 'mobile':'138xxxxxxx'}info = {'city':'Beijing', 'mobile':'138xxxxxxx'}person('Bob', 30, **info)
- 命名关键字参数:(
*, parm
)
如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city和job作为关键字参数。和关键字参数**kw
不同,命名关键字参数需要一个特殊的分隔符*
,*
后面的参数被视为命名关键字参数。
def person(name, age, *, city, job): print(name, age, city, job)
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊的分隔符
*
了。
def person(name, age, *args, city, job): print(name, age, args, city, job)
阅读全文