日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

淺談Python 參數與變量

瀏覽:25日期:2022-07-20 10:34:56

形參與實參以及位置參數

什么是形參和實參

形參:即形式參數,函數定義時指定的可以接受的參數即為形參,比如定義函數時的max(a,b)函數中的a和b就是形參 實參:即實際參數,調用函數時傳遞給函數參數的實際值即為實參,比如調用上面函數用 max(1, 9)函數中的1和9就是實參;

什么是位置參數

我們定義函數max(a,b)后,在調用時,我們無需指定參數名,只需max(1,9),這個時候實參入參的的位置進行匹配,也就是在函數中,a=1,b=9。 當然,如果我們不想基于位置順序,也可以直接指定對應的參數名,比如max(b=9,a=1),這個時候調用后,不會按入參順序賦值,而是直接按指定的參數名賦值。

默認參數

編寫一個計算x的n次冪的函數,要求x、n可以作為參數傳入

def power(x, n): return x ** nprint(power(2,2))

上面的函數雖然解決了問題,但是顯然不夠完美,假設在大部分的調用里,基本都只是求x的2次冪,但是這個時候我在調用的時候依舊每次都得傳n,這就顯得有點多余。有沒有什么方法可以讓我調用的時候少些一個入參呢?

如果我們直接 print(power(2)),會發現這個時候行不通,有錯誤。

在函數入參處,使用等號賦值默認參數,

def power(x, n=2): return x ** nprint(power(2))

注意:必需要的參數在前,默認參數在后,否則會報錯

如果有多個默認參數呢?

def test(a=1, b=2, c=3): print('a=%d b=%d c=%d' % (a, b, c))test(c=2)

當有多個默認參數的時候,可以顯式指定傳入某個參數的值,在調用函數時,入參使用參數名=參數值的形式即可

如果默認參數是一個列表呢?

def test(L=[]): L.append('END') print(L)test([1, 1, 1])test([2, 2, 2])

上面的程序運行起來似乎看不出啥問題,但是,我們來看一個奇怪的現象:在調用test函數的時候不傳入任何參數,此時,輸出的結果變得有點詭異

def test(L=[]): L.append('END') print(L)test()test()

輸出結果:

[’END’][’END’, ’END’]

函數在定義的時候,默認參數的值已確定,換句話說,L指向的地址是確定,之后如果還是對其內容進行更改的話,默認參數的值也隨之改變了

注意:默認參數必須指向不可變對象

可變參數

什么是可變參數?

顧名思義就是調用函數時,傳遞參數的個數的可變的。

如果不使用可變參數,目前有哪些方式可以實現傳入不確定個數的 list、dict、set等

def sum(numbers): total = 0 for i in numbers: total += i return totalprint(sum([1, 2, 3]))

上面這種寫法,雖然可以實現不確定個數的入參,但是調用方并不清楚入參該是哪種類型,此時調用方還得看函數的具體實現方知入參要是可迭代類型,所以對調用方不友好

可變參數的基本格式

在定義函數的時候,入參前加*號,表示可變參數,如

def sum(*numbers): total = 0 for i in numbers: total += i return totalprint(sum(1, 2, 3))

可變參數,其實是將入參封裝成元組

def my_fun(*numbers): print(type(numbers)) total = 0 for i in numbers: total += i return total print(my_fun(1, 2, 3))輸出結果:<class ’tuple’>6

命名關鍵字參數

我們先來看看之前最普通的入參方式--位置參數

def person(name, age): print(name,age)person('wiggin',29)

這種方式無需指定入參的名字,只要位置相對應,就可以。

與位置參數相對的另一種方式,是每次調用的時候,都必需指定參數的名字,也就是命名關鍵字

什么是命名關鍵字參數

限制調用者不能按位置傳遞,需要放在形參的后面,并在前面使用星號*(獨占一個參數位)與普通形參分隔

為什么要有命名關鍵字參數

為了限制后面幾個參數只能按關鍵字傳遞,這往往是因為后面幾個形參名具有十分明顯的含義,顯式寫出有利于可讀性;或者后面幾個形參隨著版本更迭很可能發生變化,強制關鍵字形式有利于保證跨版本兼容性 與位置參數相對的另一種方式,是每次調用的時候,都必需指定參數的名字,也就是命名關鍵字

命名關鍵字用法

def person(name, age, *, pet): print(name,age,pet)person('wiggin',29,pet='tomcat')

命名關鍵字使用*做分隔,*之前的參數,基于位置參數,*后面的參數,在調用的時候必需指定其參數名

一旦使用命名關機字之后,如果調用時,沒指定參數名,會報相應的錯誤

def person(name, age, *, pet): print(name,age,pet)person('wiggin',29,'tomcat')TypeError: person() takes 2 positional arguments but 3 were given

TypeError: person() takes 2 positional arguments but 3 were given

*后面的參數,同樣也可以使用默認參數進行設置

def person(name, age, *, pet='cat'): print(name,age,pet)person('wiggin',29)

注意:如果函數定義中已經有了一個可變參數,后面跟著的命名關鍵字參數就不再需要一個特殊分隔符

關鍵字參數

什么是關鍵字參數?

關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。

def person(name, age, **kw): print(’name:’, name, ’age:’, age, ’other:’, kw)person('wiggin',29,city='廣州',pet='cat')

也可以使用下面的方式傳參

def person(name, age, **kw): print(’name:’, name, ’age:’, age, ’other:’, kw)other_info = {'pet': 'cat'}person('wiggin',29,city='廣州',**other_info)

other_info表示把other_info這個dict的所有key-value用關鍵字參數傳入到函數的**kw參數,kw將獲得一個dict,注意kw獲得的dict是other_info的一份拷貝,對kw的改動不會影響到函數外的other_info。

混合使用參數

本章之前所學習的各種類型的參數,可以在定義函數時混合使用,但是,有一個核心注意的點:混合使用時,參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。

以上就是淺談Python 參數與變量的詳細內容,更多關于Python 參數與變量的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲影院天堂中文av色| 日韩精品dvd| 国产亚洲永久域名| 欧美激情另类| 国产一区二区三区不卡av| 国产精品一页| 久久不见久久见国语| 国产日韩欧美中文在线| 国产三级一区| 欧美激情视频一区二区三区免费| 欧美在线精品一区| 欧美一区成人| 亚洲精品国产精品粉嫩| 综合日韩在线| 日韩福利在线观看| 欧美精品国产一区| 国产免费av一区二区三区| 国产免费久久| 国产极品一区| 日本激情一区| 国产 日韩 欧美一区| 宅男在线一区| 亚洲一区二区三区四区电影| 日本国产欧美| 久久麻豆视频| 日韩精品1区| 欧美大黑bbbbbbbbb在线| 国产精品97| 香蕉精品999视频一区二区| 免播放器亚洲| 国产日本亚洲| 岛国av在线播放| 免费av一区二区三区四区| 好吊日精品视频| 亚洲精品裸体| 久久精品三级| 黑丝一区二区三区| 天堂va在线高清一区| 久久精品伊人| 国产综合婷婷| 亚洲91网站| 精品国产鲁一鲁****| 亚洲天堂黄色| 日本不卡视频在线观看| 不卡专区在线| 91精品1区| 欧美日韩xxxx| 免费污视频在线一区| 亚洲欧美网站| 国产va免费精品观看精品视频| 欧美成人精品三级网站| 中文一区一区三区免费在线观| 久久亚洲人体| 在线一区欧美| 精品视频黄色| 天堂va蜜桃一区二区三区| 久久精品国产久精国产爱| 日韩视频在线一区二区三区| 国产精品白丝一区二区三区| 欧美1区2区3区| 国产精品色在线网站| 国产综合精品| 精品精品久久| 中文字幕免费一区二区| 麻豆国产欧美日韩综合精品二区| 国产一区欧美| 国产精品久久亚洲不卡| 亚洲女同中文字幕| 久久99久久人婷婷精品综合| 亚洲激情另类| 国语对白精品一区二区| 亚洲中午字幕| 91综合视频| 日本aⅴ精品一区二区三区| 97se综合| 久久精品72免费观看| 99国内精品| 国产精选在线| 免费欧美在线视频| 国产 日韩 欧美 综合 一区| 亚洲精品黄色| 午夜国产一区二区| 精品72久久久久中文字幕| 亚洲日产av中文字幕| 精品三级久久| 国产精品啊v在线| 石原莉奈在线亚洲二区| 日本不卡免费高清视频在线| 国产精品一区二区精品| 亚洲欧美久久久| 免费一二一二在线视频| 欧美午夜三级| 亚洲日本国产| 欧美日韩在线播放视频| 久久丁香四色| 亚洲人成在线影院| 欧美日韩一二三四| av免费不卡国产观看| 国产精品成人3p一区二区三区| 日韩中文字幕亚洲一区二区va在线| 国产综合色区在线观看| 久久久精品区| 国产精品2023| 国产视频一区二区在线播放| 免费人成黄页网站在线一区二区| 久久久久久久久久久妇女| 国产不卡av一区二区| 国产精品欧美在线观看| 亚洲乱码视频| 亚洲一区二区免费看| 欧美亚洲国产激情| 久久青青视频| 狠狠久久伊人中文字幕| 欧美国产另类| 国产精品调教视频| 日本精品国产| 日本不卡视频在线观看| 亚洲免费福利一区| 美国欧美日韩国产在线播放| 亚洲一区日韩| 国产婷婷精品| 亚洲欧美日本视频在线观看| 影院欧美亚洲| 亚洲综合不卡| 九一精品国产| 欧美日韩三区| 久久亚洲影院| 日本不卡一二三区黄网| 日韩激情综合| 国产精品多人| 精品99在线| 播放一区二区| 国精品一区二区三区| 日韩一级精品| 午夜亚洲精品| 日本成人在线不卡视频| 国产日韩一区二区三区在线播放| 国产精品一区二区三区av| 麻豆中文一区二区| 国产精品一站二站| 精品久久99| 91精品推荐| 夜久久久久久| 伊人久久亚洲| 欧美一级网址| 精品久久久久久久| 欧美日韩视频免费观看| 婷婷亚洲综合| 综合激情婷婷| 国产欧美日韩视频在线| 精品免费av| 青青久久av| 夜夜嗨一区二区三区| 亚洲精品免费观看| 日日摸夜夜添夜夜添国产精品| 国产精品久久久久久久久免费高清 | 精品一区二区三区中文字幕在线| 鲁大师精品99久久久| 亚洲欧洲高清| 国产偷自视频区视频一区二区| 午夜精品影视国产一区在线麻豆| 国产伦乱精品| 在线亚洲人成| 偷拍欧美精品| 日本强好片久久久久久aaa| 麻豆精品av| 欧美手机在线| 亚洲理论在线| 国内自拍视频一区二区三区| 美女少妇全过程你懂的久久| 亚洲人成网77777色在线播放| 国产精久久久| 精品欧美久久| 欧美日本久久| 亚洲午夜在线| 日韩福利在线观看| 成人日韩在线观看| 亚洲va久久久噜噜噜久久| 国产欧美日韩一级| 99国产精品一区二区| 日韩黄色在线观看| 亚洲风情在线资源| 在线看片日韩| 国产精品伦理久久久久久| 亚洲神马久久| 国产中文欧美日韩在线| 久久电影一区| 日韩成人精品一区| 在线精品视频一区| 日韩一区欧美| 中文不卡在线| 五月激情久久| 国产欧美欧美| 激情婷婷亚洲| 久久国产精品美女| 日韩中文字幕不卡| 欧洲一级精品| 国产精品探花在线观看| 国产一级久久| 午夜久久中文|