zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    ruby_debug笔记
    来自Neil
    rails 在迭代里的那些条件
    rails 表单嵌套
    rails present? 和 blank? 对于bool 值
    泛泛
    设计模式——策略模式
    Spring容器初始化过程
    Spring之ResourceLoader加载资源
    Spring之ClassPathResource加载资源文件
  • 原文地址:https://www.cnblogs.com/zwgblog/p/7241127.html
Copyright © 2011-2022 走看看