1、给函数起“别名”
>>> a = abs
>>> a(-1)
1
2、函数的定义
使用def语句定义一个函数
def my_abs(x):
if x > 0:
return x
else:
return -x
3、调用函数
>>> from abstest import my_abs
>>> my_abs(-9)
9
其中的abstest是文件名(不含.py扩展名),my_abs是函数名
4、空函数
def nop():
pass
5、参数检查,如果参数类型错误,可以抛出一个错误
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad oprand type')
if x > 0:
return x
else:
return -x
6、函数返回多个值
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 = mov(100, 100, 60, math.pi)
其实返回值仍然是一个,只不过是一个tuple,例子中的angle = 0是默认参数。
7、参数个数可变的函数定义,
def my_add(*num):
sum = 0
for n in num:
sum = sum + n
return sum
调用这种函数时
nums = [1, 2, 3]
my_add(*nums)
#或者以下这种繁琐的方法
my_add(nums[0], num[1], num[2])
8、递归函数
递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。