在Python中,定义一个函数用def语句,依次些函数名、括号、括号中的参数和冒号:,然后在缩进块中编写函数体,函数的返回值用return语句返回。
1.自定义函数
自定义一个比较两个数大小的函数,返回最大值。
def maxnum(x,y): if x>y: return x elif x==y: return '两数相等' else: return y print(maxnum(2,2))
函数体内部的语句在执行时,一旦执行到return
时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。如果没有return
语句,函数执行完毕后也会返回结果,只是结果为None
。return None
可以简写为return
。
2.空函数
用pass语句定义空函数,
age=16; if age==16: pass
缺少了pass
,代码运行就会有语法错误。
3.参数检查
调用函数时,如果参数个数不对,Python解释器会自动检查出来,并抛出TypeError
:
def maxnum(x,y): if x>y: return x elif x==y: return '两数相等' else: return y # 调用函数时,如果参数个数不对,Python解释器会自动检查出来,并抛出TypeError: print(maxnum(2,2,2))
Traceback (most recent call last):
File "C:/Users/cwp/PycharmProjects/untitled/myfunction.py", line 9, in <module>
print(maxnum(2,2,2))
TypeError: maxnum() takes 2 positional arguments but 3 were given
4.函数返回多个值
函数可以返回多个值,但其实返回多个值是一种假象吗,返回的其实仍然是单一值。返回的是一个有序列表元组。tuple一旦被初始化就不能修改。
import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny print(move(100, 100, 60, math.pi / 6))
import math
语句表示导入math
包,并允许后续代码引用math
包里的sin
、cos
等函数。
控制台输出结果:
(151.96152422706632, 70.0)