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

 

posted @ 2017-07-26 17:59  记忆残留  阅读(1682)  评论(0编辑  收藏  举报