1. 程式人生 > >day10 python學習 函數的嵌套命名空間作用域等

day10 python學習 函數的嵌套命名空間作用域等

*args class none sdas set str images 排序 com

1、三元運算

#1.三元運算
利用已下方法就可以實現一步運算返回a b中大的值
def my_max(a,b):
    c=0
    a=int(input(請輸入))
    b=int(input(請輸入))
        # if a>b:
        #     c=a
        # else:
        #     c=b
    #或者這樣
    c = a if a > b else b
    return c
ret=my_max(1,3)
print(ret)

2.補充上節差的知識點

形參:

#位置參數

#默認參數(關鍵字參數)

#動態參數

*args:接收說有按照位置傳遞的參數,接收到的是參數是組成的元祖

*kwargs:接收說有按關鍵字傳遞的參數,接收到的是參數組成的字典

這次講的是動態參數

參數的排序 如果各種參數都在函數中使用,就要以以下的形式排序

def func3(a,b,c,*args,key=‘key‘,**kwargs):
#2.動態參數
def func(a,b,c,*args,key="key"):  #在參數前面加一個* 這個參數就變成了動態參數
    print(a,b,c)                   #默認參數放在動態參數後邊
    print(key)               #參數
    
print(args) set=func(1,2,3,sd,11,22,33,key=aaa)
以下是返回值
# 1 2 3 #前邊這三個必須有,少一個都不能 # aaa #返回的就是此次的正常結果 # (‘sd‘, 11, 22, 33) 使用的時候,所有傳入的值都被組織成元祖的形式
技術分享
#動態參數2  **kwargs的用法
def func3(a,b,c,*args,key=key,**kwargs):
    print(a,b,c,)
    print(key)
    print(args)
    print(kwargs)
set=func3(1,2,3,
sdash,key=www,x=3,y=alex) #這裏最後的kwargs要註意不要寫成與 以下是返回值 #前邊的形參的關鍵字參數有重復 #如不能在後寫成a="alex"會報錯 # 1 2 3 # www # (‘sdash‘,) # {‘x‘: 3, ‘y‘: ‘alex‘} #kwargs這個傳入的值都會組織成字典的形式
View Code
#4魔性用法
def func4(*args):
    print(args)
li=[1,2,3,4,5]
# func4(li) #  得到以下結果
#([1, 2, 3, 4, 5],)  直接將列表傳遞到函數的話,他會直接弄成一個大的元祖
func4(*li)  #結果如下  在列表名前加一個*就是打散的意思,這樣可以一一是放在元祖中去
#(1, 2, 3, 4, 5)       也有**dic的用法  

3.命名空間

三種命名空間之間的加載與取值順序:

加載順序:內置命名空間(程序運行前加載)->全局命名空間(程序運行中:從上到下加載)->局部命名空間(程序運行中:調用時才加載)

取值:

  在局部調用:局部命名空間->全局命名空間->內置命名空間

技術分享

4.作用域

技術分享

全局作用域

技術分享

局部作用域

技術分享

技術分享

nonlocal的用法,和他的作用
n=2 def func(): n=4 def func2(): nonlocal n #想要引用上一層的並改變他得值就得用nonlocal這個,如果只是引用不用nonlocal n n +=1 func2() print(n) #運行程序打印的是5 說明上一層的n=1在最下層被修改成功了 func()
內層函數想要改變全局變量中的n的值的話就要用global 來引入全局變量
n=2 def func(): n=4 def func2(): global n#想要引用全局變量的並改變他得值就得用這個,如果只是引用不用nonlocal n n +=1 func2() print(n) #運行程序打印的是4 說明上一層的n=4沒有被改變 func() print(n) #運行結果還是3 說明只是改變了全局變量n=2的值

函數的嵌套

技術分享

輸出的結果

技術分享

技術分享

輸出結果是 我是qqxing

技術分享

day10 python學習 函數的嵌套命名空間作用域等