累的时候,唯有看看妹子才能满血复活(✿◕‿◕✿)(不要点这里!)
发现进度有点慢,就不会很详细地写了,当个笔记吧。
函数
函数调用
python内置有许多可以直接调用的函数,例如 abs() 返回绝对值。还有上次说到的数据类型的转换 int() 等…
函数定义
在 Python 中,定义一个函数使用 def 语句,依次写出函数名、括号、括号中的参数和冒号 : ,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
def my_abs(x):
if x >= 0:
return x
else:
return -x
- 返回多个值
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:
#import math语句表示导入math包,并允许后续代码引用math包里的sin、cos等函数。
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0
#但其实这只是一种假象,Python函数返回的仍然是单一值:
>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)
#原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
参数
参数地设置:可以设置默认参数.
一是必选参数在前,默认参数在后,否则Python的解释器会报错.
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
默认参数必须指向不变对象!
def power(x, n=2):
- 定义可变参数
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:
递归函数