zoukankan      html  css  js  c++  java
  • (四)函数一

    函数用途:去除重复代码,增加代码的可维护性
    定义函数:def     函数名():    【定义函数时不会执行】
    调用函数:函数名()    【调用函数时才执行】
    文档说明:第一行用字符串说明
    形参:定义函数时的参数        实参:调用函数时的参数
    传参的作用:同一个函数可以执行出不同的效果
    1 def text(形参1,形参2):
    2     """文档说明"""
    3     pass
    4 
    5 text(实参1,实参2)
    6 help(text)  # 产看文档说明

    PS:位置与个数必须一一对应

     
    参数的类型:
        1、缺省参数(为形参赋值):带有默认值的参数。调用函数时,如果没有为缺省参数赋值,则为默认
             缺省参数必须再形参列表最后
    1 def printinfo(name, age=35):         # age=35 :缺省参数
    2    # 打印任何传入的字符串
    3    print("name: %s" % name)
    4    print("age %d" % age)
    5 
    6 # 调用printinfo函数
    7 printinfo(name="miki")  # 在函数执行过程中 age去默认值35
    8 printinfo(age=9 ,name="miki")
       
     2、位置参数:形参和实参需要一一对应的传递
        3、关键字参数(命名参数):指定要传递的形参名字(可以无序,在实参里使用)
        4、不定长参数:用一个星号,由元组来接收 (*args);用两个星号,,由字典来接收(**kwargs)
                                 如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的   
    1 def functionname([formal_args,] *args, **kwargs):  # 不定长参数
    2    """函数_文档字符串"""
    3    function_suite
    4    return [expression]
    注意:
    加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
    而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典.
     
    返回值的作用:调用者需要使用函数结果(知道其结果)
    返回值:
        1、return:会立即终止函数,回到函数调用的地方,多个return只执行第一个
        2、None:没有数据,函数没有返回值
        3、不同的分支上允许存在多个return返回。
    ps: 函数里return什么都不写,专门用于终止函数
            return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据   那么默认是元组
     
    函数类型分四种:
    • 无参数,无返回值
    • 无参数,有返回值
    • 有参数,无返回值
    • 有参数,有返回值
    函数的嵌套:
        一个函数里面又调用了另外一个函数
    def testB( ):
        print('---- testB start----')
        print('这里是testB函数执行的代码...(省略)...')
        print('---- testB end----')
    
    def testA( ):
        print('---- testA start----')
        testB( )
        print('---- testA end----')
    
    testA( )   # 执行
      {如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置}
     
    局部变量:
            定义:在函数内部定义的变量,其作用范围仅限这个函数内部,只能在函数内使用,函数外部是不能使用的
    全局变量:
            定义:在函数外定义的变量,能够在所有的函数中进行访问
    {在函数里为全局变量,实际上创建了一个行的局部变量}
    global:在函数里声明,修改全局变量
    # 在一个函数里,全局变量与全局变量不能同名
     
     
    打包、拆包:
    打包:把多个值放在一个数据里
    拆包:把一个拆分成多个值
    除了对元组拆包之外,还可以对列表、字典等拆包
    拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
     >>a, b = (11, 22)
     >> a = 11, b = 22
    交换两个变量的值:a,b = b,a
     
    附:1、传递实参时,在列表或元组前写一个星号,可以讲列表或元组拆分成单独的位置参数传递
           2、传递实参时,在字典前写两个星号,则会讲字典拆分成单独的关键字参数传递
  • 相关阅读:
    (转)社会青年应如何自学英语?
    WEB标准学习路程之"CSS":13.声明,单位
    8大致命生活毛病(转)
    VS2008小Bug??
    【细嚼慢咽大数据】第一章——数据挖掘基本概念,邦弗朗尼原理,IF.IDF指标,哈希函数
    【Linux操作系统分析】定时测量——RTC,TSC,PIT,jiffies,计时体系结构,延迟函数
    【Git】Git上传本地项目的命令以及nonfastforward updates were rejected的解决办法
    【Linux操作系统分析】Ubuntu12.04内核升级和添加系统调用
    【折腾ubuntu】Ubuntu12.04安装windows版本的福昕阅读器
    【二】zTree checkbox
  • 原文地址:https://www.cnblogs.com/qingchang/p/8964502.html
Copyright © 2011-2022 走看看