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()

  • 相关阅读:
    小的面试题
    email
    网络
    进程,线程
    周日作业
    Python_day9
    Python_day8
    假期作业
    12/13
    Python_day7
  • 原文地址:https://www.cnblogs.com/xshan/p/7708650.html
Copyright © 2011-2022 走看看