函数&s一些高级特性
今天仍旧是按照廖大大的教程来学,进度真的神慢(周末的学习动力low是我的bug)
1. def functions
- argument checks
if not isinstance (变量名,要检查的变量类型)
raise TypeError('xxx') #类型错则显示TypeError : xxx
- empty functions
有脑洞没内容,又想顺利跑代码时用
def empty():
pass
-
函数返回伪多值
eg:
x, y = coordinata (x, y, step, angle)
但coordinate() 返回的其实是一个tuple, 然后按序赋值给x,y 罢了
arguments(形参)
- 分类
- positional argument
def fun1(x, y) : #可用list, tuple, 直接上值,性如其名只要位置对上
pass
- default argument
def fun2 (x = 'Charles') :
pass
- changeable argument
*changeable ------->()
不管拿到的是list or str等等都会存在()里
- keyword argument
**kw------> { }
- named keyword argument
*,nkw------>固定名字的为位置参数,可用dict 中的kw赋值
recursive functions
- 汉诺塔问题
- 尾递归优化问题
slices
list [ m: n: t] ------->从第m+1开始切,切到第n个,每t个切一刀