zoukankan      html  css  js  c++  java
  • 函数定义

    ### -函数
    
    ```
    # ###函数
    (1)函数的含义:
    	功能 (包裹一部分代码 实现某一个功能 达成某一个目的)
    (2)函数特点:
    	可以反复调用,提高代码的复用性,提高开发效率,便于维护管理
    (3)函数基本格式
    (4)函数命名
    ```
    
    ```
    # ###函数参数 : 函数运算时需要的值
    (1)函数参数概念及分类
        函数参数:调用时需要传递的数据.
        函数参数大类分为形参和实参:
            形参意思: 函数定义时的参数
            实参意思: 函数调用时的参数
        形实关系:函数调用时,形参和实参个数需要一一对应
        形参种类: 普通参数(位置参数),默认参数,普通收集参数,命名关键字参数,关键字收集参数
        实参种类: 普通实参,关键字实参
        
    (2)收集参数:
    	普通收集参数:专门用于收集多余的普通实参,形成一个新的元组
    		语法:参数前面加*	例:*args
    	关键字收集参数:专门用于收集多余的关键字实参,形成一个新的字典
    		语法:参数前面加**	例:**kwargs
        
    (3)命名关键字参数:定义时放在*号后面的参数,调用时强制必须指定关键字实参才能调
    		语法:(*,x) x是命名关键字参数
    		
    (4)*和**的魔术用法:打包和解包 
        *和**,在函数的定义处,负责打包(把实参都收集过来,放在元组或字典中)
        *和**,在函数的调用处,负责解包(把容器类型的数据,一个一个拿出来,进行传递)
    
    (5)形参声明的位置顺序:
    	普通参数 -> 默认参数 -> 收集参数 -> 命名关键字参数 -> 关键字收集参数
    	
    (6)对于任意函数,都可以通过 def func(*args, **kw) 来获取所有参数
    ```
    
    ### -return
    
    ```
    return返回值
    为这个函数返回一个结果 (return返回值可有可无 按照需求选择)
    注意:执行return语句之后,函数执行结束
    ```
    
    ### ____doc____
    
    ```
    __doc__或者help查看文档
    ```
    
    ### -内置函数  
    
    ```
    abs    绝对值函数
    round  四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!)
    sum    计算一个序列得和
    max    获取一个序列里边的最大值
    min    获取一个序列里边的最小值
    pow    计算某个数值的x次方
    range  产生指定范围数据的可迭代对象
    bin    将10进制数据转化为二进制
    oct    将10进制数据转化为八进制
    hex    将10进制数据转化为16进制
    chr    将ASCII编码转换为字符
    ord    将字符转换为ASCII编码
    eval   将字符串当作python代码执行
    eval   将字符串当作python代码执行(功能更强大)
    repr   不转义字符输出字符串
    input  接受输入字符串
    hash   生成哈希值
    ```
    
    ### 参数练习
    
    ```
    def f1(a, b, c=0, *args, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
    
    def f2(a, b, c=0, *, d, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
    
    以上两个函数 打印结果
    #(一)
    f1(1, 2)
    f1(1, 2, c=3)
    f1(1, 2, 3, 'a', 'b')
    f1(1, 2, 3, 'a', 'b', x=99)
    f2(1, 2, d=99, ext=None)
    
    #(二)
    args = (1, 2, 3, 4)
    kw = {'d': 99, 'x': '#'}
    f1(*args, **kw)
    
    #(三)
    myargs = (1, 2, 3)
    mykw = {'d': 88, 'x': '#'}
    f2(*myargs, **mykw)
    
    #(四)
    def f1(a, b, c=0, *args,d,**kw):
        print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
        print(d)
    
    f1(1,2,3, 'a', 'b',d=67, x=99,y=77)
    ```
    

      

  • 相关阅读:
    DirectX SDK版本与Visual Studio版本
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别
    LocalDateTime与字符串互转/Date互转/LocalDate互转/指定日期/时间比较
    MySQL触发器的正确使用与案例分析
    一篇很棒的 MySQL 触发器学习教程
    Java消息队列三道面试题详解!
    到底什么时候该使用MQ?
    mq使用场景、不丢不重、时序性
    Java 8时间和日期API 20例
    eclipse插件之Findbugs、Checkstyle、PMD安装及使用
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10829145.html
Copyright © 2011-2022 走看看