zoukankan      html  css  js  c++  java
  • Python学习笔记3 函数_20170614

    # 函数

    • 定义
    def my_abs(x) : 
        if not isinstance(x, (int, float)) : 
             raise TypeError('bad operand type')
        if x>0 :
            return x;
        elif x == 0 :# 只是为了显示pass的作用,什么都不做。对于函数逻辑是不对的。
            pass # pass 是占位符,什么都不做。
        else :
            return -x
    • 加载函数

    假如函数 my_abs 定义在文件 abstest.py 中,调用的加载方式为:

    from abstest import my_abs # 导入my_abs()
    • 加载库
    import math
    
    def move(x, y, step, angle=0)
        nx = x+step*math.cos(angle)
        ny = y+step*math.sin(angle)
        return nx, ny # 按照 tuple 方式返回多个变量
    •  函数参数1 位置参数(最一般的参数)

    见上面的例程,x、y、step

    • 函数参数2 默认参数

    见上面的例程,angle = 0

    •  函数参数3 可变参数(类似tuple传入)(常用做法,调用更简单)
    # 函数, number 是位置参数
    def calc(numbers) :
        su = 0
        for n in numbers:
            su = su+n*n
        return su
    
    # 调用
    >>>calc([1,2,3])
    >>>a = [1,2,3]
    >>>calc(a) # 这里都是以list作为参数传入
    
    
    # 函数,*number 是可变参数
    def calc(*numbers) :
        su = 0
        for n in numbers:
            su = su+n*n
        return su
    # 调用
    >>>calc(1,2,3) # 这是tuple
    >>>a = [1,2,3]
    >>>calc(*a) # 
    •  函数参数4 命令关键字参数(对参数4中可传入的类型加以限制)
    def person(name, age, *, city, gender) : 
        print(name, age, city, gender)
    
    # 表示参数 city 和 gender 一定要传入
    # 可以缺省
    # 可以设置默认值
    def person(name, age, *args, city='Beijing', gender) : 
        print(name, age, city, gender)
    
    # 注意 * ,是 city, gender 别于位置参数的标志符。
    •  函数参数5 关键字参数(类似dict传入)
    def person(name, age, **KeyWord) : 
        print('name : ', name, 'age : ', age, 'other : ', KeyWord)
    
    # **KeyWord就是关键字参数
    # 可以缺省调用
    >>>persion('AA', 10)
    name : AA age : 10 other : {}
    
    # 传入参数,关键字参数就是一个 dict 
    >>>person('AA', 10, city = 'Beijing', gender = 'M')
    name : AA age : 10 other : {'city''Beijing', 'gender' : 'M'}
    
    # 先设计dict,;2种调用方法
    >>> extra = {'city' : 'Beijing', 'gender' : 'M'}
    >>> person('AA', 10, **extra) 
     
    >>> person('AA', 10, city=extra['city'], gender = extra['gender'])
    • 函数参数的顺序

    函数的参数顺序必须如下:

    位置参数(list或者tuple传入)、

      默认参数()、

        可变参数(*L)(list或者tuple传入)、

           命名关键字参数(*,d)(有限制的dict传入)、

              键字参数(**d)(dict传入)

  • 相关阅读:
    ObjectArx的一次常用方法
    GDI+ 简介(1)
    VC++获取可执行文件当前目录
    SQL Server 常用的时间处理函数
    利于Wininet创建一个FTP客户端的步骤
    Win32 文件操作的几个API
    ObjectARX中三维多段线转二维多段线的方法
    fas文件格式解析
    [转载]swf文件格式解析(一)
    [转载]swf文件格式解析(二)
  • 原文地址:https://www.cnblogs.com/alexYuin/p/7006944.html
Copyright © 2011-2022 走看看