#-*- 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