美文网首页我爱编程
python语法(五)

python语法(五)

作者: Jalynn葸 | 来源:发表于2018-04-12 16:32 被阅读23次

    元组

    用于存储不能改变的数据,只要试图改变它,都会报错。只读文件。和列表有区别。只能查,不能增删改。

    #encoding:utf-8
    numd = (11,22,33)
    >>> type(numd)
    <type 'tuple'>
    

    函数

    定义函数

    def 函数名():
    .......

    调用函数
    #encoding:utf-8
    def manager():    #定义函数
            print("你好python")
    manager()          #调用函数
    
    带参数的函数
    #encoding:utf-8
    #函数的定义
    def sum(num1,num2):
            all = num1 + num2
            print("%d + %d = %d"%(a,b,all))
    #函数的调用
    a = input("输入一个数:")
    b = input("输入另一个数:")
    sum(a,b)
    
    函数的返回值
    def get_wendu():
            wendu  = 22
            print("当前的室温是:%d"%wendu)
            return wendu #返回值
    def get_huashi(wendu):
            wendu = wendu +3
            print("当前的华氏温度是:%d"%wendu)
    #函数调用
    wendu = get_wendu()
    get_huashi(wendu)
    
    函数中的多个返回

    一个函数里不能有多个return,否则后面的return执行不到,要返回多个值,不能用多个return,而要:

    def test():
            a = 11
            b = 22
            c = 33
            d = [a,b,c]
            return d  #或者也可以return [a,b,c] 或者 return (a,b,c) 或者 return a,b,c
    num = test()
    print(num)
    
    函数的嵌套调用

    函数里可以调用函数

    #encoding:utf-8
    def sum(a,b,c):
            result = a+b+c
            return result
    def avg(a,b,c):
            result = sum(a,b,c)/3 #如果函数有返回值,必须定义一个变量来接收
            print("平均值是:%d"%result)
    
    num1 = int(input("第1个数:"))
    num2 = int(input("第2个数:"))
    num3 = int(input("第3个数:"))
    avg(num1,num2,num3)
    
    局部变量

    函数内部定义,只能在此函数内部使用

    全局变量

    函数外面定义,任何函数里都可以使用

    全局变量和局部变量
    def getwendu():
            wendu = 33
            return wendu
    def printwendu(wendu):
            print("当前温度为:%d"%wendu)
    result = getwendu()
    printwendu(result)
    结果:33
    ————————————————————————————————————————————————————————————————
    wendu = 0
    def getwendu():
            global wendu  #使用global用来对一个全局变量声明,那么这个函数中的wendu =33就不是一个局部变量,而是全局变量,  
            wendu = 33
    def printwendu(wendu):
            print("当前温度为:%d"%wendu)
    
    getwendu()
    printwendu()
    

    全局变量和局部变量的作用域

    a = 100
    def test():
            a = 200
            print("a = %d"%a)
    def test2():
            print("a = %d"%a)
    test()
    test2()
    结果:
    a = 200
    a = 100
    
    列表和字典作为全局变量时,可以直接使用,修改时可以不必加globle,但是变量要修改必须得加globle
    num = [11,22,33]
    a = 0
    def test():
            a = 11
            num.append(44)
    
    def my():
            print(a)
            print(num)
    test()
    my()
    
    运行结果:
    0
    [11, 22, 33, 44]
    
    缺省参数

    缺省参数和命名参数要注意顺序,否则会出现错误

    def test(a,b =22):#缺省参数只能写在最后面
            result = a+b
            print("result=%d"%result)
    test(11)
    test(33,33)
    test(44)
    运行结果:
    result=33
    result=66
    result=66
    
    缺省参数和命名参数
    def test(a,b = 22,c=33):
            print(a)
            print(b)
            print(c)
    test(11,c = 44)
    运行结果:
    11
    22
    44
    
    不定长参数
    def sum(a,b,*args):
            print(a)
            print(b)
            print(args)
    sum(1,2)
    sum(1,2,3)
    sum(1,2,666,66,6)
    运行结果:
    1
    2
    ()
    ---------------------------------------------
    1
    2
    (3,)
    ----------------------------------------------
    1
    2
    (666, 66, 6)
    

    元组里只有一个元素时要加一个,例如(3,)

    def test(a,b,c=33,*args,**kwargs):
            print(args)
            print(kwargs)
    
    test(11, 22, 33, 88, 99, task = 99, down = 88)
    运行结果:
    (88, 99)
    {'down': 88, 'task': 99}
    
    拆包

    可以把元组拆包存入args,把字典存入*kwargs

    引用

    python存储数据的方法,A=100,B=A是指同时指向100,只要修改了A,B也会修改,因为他们指向同一个内存区域。python所有数据的存储都是引用存储

    >>> id(a)
    140207257077584
    >>> id(b)
    140207257077584
    >>> c = 1
    >>> id(c)
    140207257076008
    
    >>> A = [11,22,33]
    >>> B = A
    >>> id(A)
    4330952824
    >>> id(B)
    4330952824
    >>> A.append(44)
    >>> A
    [11, 22, 33, 44]
    >>> B
    [11, 22, 33, 44]
    
    不可变类型和可变类型

    python中只有列表和字典是可变类型别的都是不可变类型,也就是不可以修改

    >>> a(0) = "ffff"
      File "<stdin>", line 1
    SyntaxError: can't assign to function call
    
    >>> a = [11,22,33]
    >>> a[0] = "fff"
    >>> a
    ['fff', 22, 33]
    >>> a = {"name":"xjx","age":10}
    >>> a['name'] = "Lily"
    >>> a
    {'age': 10, 'name': 'Lily'}
    

    在字典中:字符串,数字,元组都可以做key但是列表不可以。

    相关文章

      网友评论

        本文标题:python语法(五)

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