美文网首页
Python学习总结【连载】(八)

Python学习总结【连载】(八)

作者: Juttachen_8e9d | 来源:发表于2018-06-22 17:00 被阅读16次

    Python学习总结【连载】(八)

    2018.06.22 Juttachen


    概述

    + 26 函数补充

    • 函数的返回值
    • 函数调用表达式
    • return
    • 函数的结束

    + 27 作用域


    二十六、函数补充

    1.函数的返回值:

    a.就是函数调用表达式的值
    b.就是return关键字后的表达式的值
    c.就是函数返回给调用者的值

    如何看一个函数的返回值是多少?
    就看return后面的结果!!

    2.函数调用表达式:就是调用函数的那个表达式(这个表达式是有值的,默认是None)

        def func1():
            print('hello world')
        # func1()就是函数调用表达式,他是一个值。
        result = func1()
        print(result,func1())
    

    注意:普通的值能做的事情,函数调用表达式都能做,例如:给变量赋值,打印(可以作为实参传给函数),还有运算等

    例子:将列表作为参数

        def del_list(list1):
            index = 0
            while index < len(list1):
                if list1[index] % 2 == 0:
                    del list1[index]
                    index -= 1
                index += 1
            print(list1)
    
        list2 = [1,2,3,4]
        del_list(list2)
    

    注意:将对象变量作为实参传递给函数,如果在函数中改变了列表的元素,那么原来的列表元素也会变。
    如果不想两个对象都变了,那么就要copy或者切片一下。

        list2 = [1,2,3,4]
        del_list(list2[:])
    

    3.函数的调用过程

    a.函数声明:函数体在声明的时候是不会执行的
    b.函数调用过程:
    第一步:将实参传递给形参(传参:用实参给形参赋值)
    第二步:执行函数体
    第三步:获取返回值(这个时候会回到函数调用的位置,并且让函数调用表达式的值)

    二十七、作用域

    1.概述

    变量的作用域:变量可以使用的范围
    python中只有函数、类会产生作用域。
    在作用域中声明的变量我们叫局部变量。
    在产生作用域外的位置声明的变量叫全局变量,都是从声明开始起作用的。

    2.全局变量:

    声明在产生作用域外的变量。(即声明在函数和类外面的变量)
    使用范围:从声明开始到整个文件结束的任何位置都可以使用。
    注意:写在if语句、for/while循环体中的变量也是全局变量。if语句和循环不会影响变量的作用域。

        a = 10
        print(a)
    
        if True:
            print('if',a)
    
        for x in range(3):
            print('for',a)
    
        def func1():
            print('func1',a)
        func1()
    

    3.局部变量

    在Python中声明在函数和类的变量都是局部变量。

        def func3():
            # d就是一个局部变量,使用范围只是从声明开始到函数结束。
            d = 'a'
            print('func3',d)
    
            if True:
                print(d) # 这个就是对的,因为在函数内
    
        func3()
        # print(d) NameError: name 'd' is not defined
        # if True:
        #   print('if',d) NameError: name 'd' is not defined
    
        aa = 100 # 全局变量aa
        def func4():
            aa = 200 # 重新声明一个局部变量 aa (不过两个同名了)
            print('func4',aa)
    
        func4()
        print(aa)
    

    注意:在函数中普通赋值不能修改全局变量的值,只能使用。

    在函数或类中想修改全局变量的值?
    使用global关键字

        bb = 100
        def func5():
            # 想在这个地方去修改全局变量bb的值为200
            global bb # 这个时候不能直接赋值,这个的意思是提醒机器bb是全局变量。
            bb = 200
    
        func5()
        print(bb)
    

    相关文章

      网友评论

          本文标题:Python学习总结【连载】(八)

          本文链接:https://www.haomeiwen.com/subject/vtekyftx.html