zoukankan      html  css  js  c++  java
  • Python函数

    一、函数的作用

    1、减少重复代码

    2、方便修改,更易拓展

    3、保持代码一致性

    二、函数格式

    def 函数名 ():

          函数体

    三、函数名的命名规则:

    1、函数名必须以下划线或字母开头,可以包含字母、数字或下划线的任意组合,不能使用任何的标点符号。

    2、函数名区分大小写

    3、函数名不能是保留字

    四、调用

    函数名()

     五、函数参数

    1、直接参数

    在定义函数时将形参放在括号内。即def 函数名 (形参1 ,形参2,……)

    def function (name ,age ):                                     #定义函数

       print('name is %s,age is %s'%(name,age)         #函数内容

    function('tom','18')                        #调用函数,结果为name is tom,age is 18

    2、关键字参数

    def function (name ,age ):                                     #定义函数

       print('name is %s,age is %s'%(name,age)         #函数内容

    function(age='18',name='tom')             #调用函数,给形参赋值后,在传递形参值时,不用一一对应。结果为name is tom,age is 18

    3、默认参数

    def function (name ,age ,sex='man'):

       print('name is %s,age is %s,is %s'%(name,age,sex))

    function(age='18',name='tom')        #sex的值为默认值‘man’, name is tom,age is 18,is man

    function('jim','20')                           # sex的值为默认值‘man’, name is jim,age is 20,is man

    function('anna','20','woman')          #sex的值为新赋值‘women’ ,name is anna,age is 20,is woman

    4、可变长参数

    a)通过将参数转化为元组实现可变长

    参数前加一个“ * ”。

    def add (*add):                                #定义函数add

        print (add)                                 #函数内容

    add (1,2,3)                                        #调用函数。结果为(1, 2, 3)

    b) 通过将参数转化为字典实现可变长

    参数前加一个“ ** ”。如果是混合参数(既有元组转换的可变长参数,又有字典转换的可变长参数)时,需要将两种参数分开传递且元组转换的可变长参数必须放在前边,字典转换的可变长参数必须放在后面,如下:

    def add (*add,**args):                              #定义函数

        print (add,args)                                   #函数内容

    add (1,2,3,job='IT',hobby='sing')             #调用函数(1, 2, 3){'job': 'IT', 'hobby': 'sing'}

    六、return

    1、Return作用:

    a)       结束函数

    b)       返回某个对象

    2、设置return值

    def add (*addS):                   #定义函数add
        Sum = 0                        #定义函数内容
        for i in addS:
            Sum += i
        return Sum                       #设置返回值
    A=add (1,2,3)                        #调用函数。并把返回值赋给A
    print(A)                             #6
    注意:
    1.函数里如果没有return,会默认返回一个None。
    2.如果return多个对象,那么Python会帮我们把多个对象封装成一个元组

    七、nonlocal和global

    Python中的作用域分4种情况:

    L:local,局部作用域,即函数中定义的变量;

    E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;

    G:global,全局变量,就是模块级别定义的变量;

    B:built-in,系统固定模块里面的变量,如int,byrearray等。搜索变量的优先级顺序依次是:局部作用域>外层作用域>当前模块中的全局变量>Python内置作用域,也就是LEGB.

    x = int (2.9)          #int  built-in
    g_count = 0              #global
    def out ():
        o_count = 1         #enclosing
       
    def inner_1 ():
            i_count =2        #local

    在函数外定义的变量为全局变量,在函数内定义的变量,如无特殊说明则为局部变量。在函数内可以调用全局变量但不可以更改全局变量的值。如需更改全局变量的值,则需在变量前加global声明是全局变量。

    如果定义函数时又定义了内层函数,则需要用nonlocal声明。

    conut=0
    def outer():
        conut=10
        #print(conut)
       
    def inner() :
            nonlocal conut
            conut = 20
            print(conut)
            #return conut
       
    inner()
    outer()

  • 相关阅读:
    14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp
    14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项
    13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复
    13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令
    12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
    12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对 12.20 Nginx配置ssl
    12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置 12.16 Nginx代理
    在界面workspacebar上添加的OnContextMenu函数打的断点始终进不去,显示当前不会命中断点还未为文档加载任何符号
    VS2019安装闪退, 不出现安装界面,解决办法
    BCGP单元格多列合并需要注意的
  • 原文地址:https://www.cnblogs.com/xshan/p/7708650.html
Copyright © 2011-2022 走看看