python 定义函数
#-*- coding:UTF-8 -*- # python中定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后在缩进块中写函数体, # 函数的返回值用return返回 def my_abs(x): if x>=0: return x else: return -x #如果没有return语句,函数执行完毕也会返回结果,结果为None # return None 可以简写为return # 定义一个什么都不做的空函数,可以用pass语句 def nop(): pass # 调用函数时,如果参数个数不对,python解释器会自动检查出来,跑出TypeError # my_abs(1,2) # TypeError: my_abs() takes exactly 1 argument (2 given) #如果参数类型不对,Python解释器无法帮我们检查。 # my_abs('A') #内置函数 abs会检查出参数错误 abs('A') # TypeError: bad operand type for abs(): 'str' # 修改一下my_abs的定义,对参数类型做检查,只允许整数和浮点数类型的参数,数据类型检查可以用内置函数instance实现: def my_abs(x): if not isinstance(x,(int,float)): raise TypeError("bad operand type") if x>=0: return x else: return -x my_abs('A') # TypeError: bad operand type # 返回多个值 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.961524227 30.0 #其实这只是一种假象,返回的是单一直 r=move(100,100,60,math.pi/6) print r # (151.96152422706632, 29.999999999999996) #返回值原来是一个tuple