Python是較容易學(xué)習(xí)的編程語言,其語法近似英語。通常,初學(xué)者只會遇到一些小麻煩,如強制縮進、在函數(shù)中使用self等。然而,當(dāng)開始閱讀、復(fù)制和編輯他人代碼時,麻煩就接踵而至了。
這里,我將解釋五個關(guān)于Python的概念,這些概念將有助于初學(xué)者修改他人代碼。他們可以自己編寫Python代碼來解決問題,然而在閱讀他人代碼時往往會遇到問題。以下是幫助大家好地理解Python的五點建議。
1. * args和** kwargs是函數(shù)參數(shù)
如果您查看Python模塊或什至該模塊的文檔,則可能會看到*args和**kwargs。它們看起來和行為隱約地像是C語言中的指針。事實并非如此。 *args只是發(fā)送給函數(shù)的參數(shù)列表。
**kwargs 是關(guān)鍵字參數(shù)的字典。
*args 例:
def add_it(* args):<字體> 字體>
為 NUM 在 ARGS:<字體> 字體>
打印(num)<字體> 字體>
<字體> 字體>
add_it(3,4,5,6)
輸出:
$ python dzone.py font>
3 font>
4 font>
5 font>
6
**kwargs 例:
def fish_counter(** kwargs):<字體> 字體>
打印(kwargs)<字體> 字體>
<字體> 字體>
fish_counter(鮭魚= 10,鱒魚= 30,冶煉= 10,大blue = 52)
輸出:
$ python dzone.py font>
{ 'bluegill':52,'smelt':10,'salmon':10,'trout':30 }
對于運行的代碼 *args 和 **kwargs 例子,請這里 的文件中 args_example.py 。
2.列表推導(dǎo)適用于循環(huán)快捷方式
列表壓縮是返回列表的一種簡短方法。在代碼段中,for循環(huán)為for number in args。
通常在循環(huán)內(nèi)的表達式是num **2,它返回參數(shù)的平方。
def square_it(* args):<字體> 字體>
返回[ NUM ** 2 為 NUM 在 ARGS ] <字體> 字體>
<字體> 字體>
打印(square_it(3,4,5,6))
輸出:
$ python dzone.py font>
[9,16,25,36 ]
您可以將過濾器附加到列表理解的末尾以過濾出輸入。例如,要僅對偶數(shù)取平方,請使用以下過濾器:
def square_it(* args):<字體> 字體>
返回[ NUM ** 2 為 NUM 在 ARGS 如果 NUM 2 == 0 ] <字體> 字體>
<字體> 字體>
打印(square_it(3,4,5,6))<字體> 字體>
輸出:
$ python dzone.py font>
[ 16、36 ]
列表理解功能不會在for 循環(huán)中添加任何特殊功能。人們使用列表推導(dǎo),是因為它們較短,并且一旦您習(xí)慣了語法,就可以使代碼易于閱讀。有些人可能會過度使用列表理解,并使代碼難以閱讀。請注意這一點,因為將卷積列表與多個嵌套進行卷積并不是較佳實踐。
如果您剛開始使用Python并看到for 一行循環(huán),則可以在Internet上搜索列表推導(dǎo)并查看以下三個組件的語法:
表達。
對于循環(huán)。
過濾。
3. F字符串可以替換.format()
Python非常適合字符串操作。您可能會至少看到3或4種將變量插入字符串的技術(shù)。大多數(shù)人笨拙。一個很酷。
字符串串聯(lián)
很久以前,您可能已將變量插入具有類似以下代碼的字符串中:
animal = “ dogs” <字體> 字體>
人口= 3 <字體> 字體>
city = “ Palo Alto” <字體> 字體>
打印(“有” + STR(人口)+ “” + 動物 + 在“” + 城市 + “” )
輸出:
$ python dzone.py font>
有3個狗在帕洛阿爾托。
這很難閱讀,容易出錯。即使語法高亮顯示,也很容易錯過空格。
字符串替換
字符串替換可以幫助減少錯誤。
打印(“字符串替換格式示例”)<字體> 字體>
人口= 3 <字體> 字體>
animal = 'dogs' <字體> 字體>
city = 'Palo Alto' <字體> 字體>
my_string = 's中有ss' (人口,動物,城市)<字體> 字體>
打印(my_string)<字體> 字體>
輸出量
字符串替換格式示例 font>
有3個狗在帕洛阿爾托
使用字符串替換的在線例子可在這里 的文件中 format_example.py
字串格式
好的方法是使用.format()并制作如下字符串:
animal = “ dogs” <字體> 字體>
人口= 3 <字體> 字體>
city = “ Palo Alto” <字體> 字體>
<字體> 字體>
打印(“ {}中有{} {}”。格式(人口,動物,城市))
$ python dzone.py font>
有3個狗在帕洛阿爾托
盡管.format在字符串連接方面有了很大的改進,但仍然有些笨拙。
F弦
首先,升級到Python 3.6或3.7。現(xiàn)在,您可以使用f字符串。
打印(f“ {city}中有{人口} {動物}”)
$ python3 dzone.py font>
有3個狗在帕洛阿爾托 FONT>
4. Lambda函數(shù)是匿名的
Python lambda函數(shù)是快捷方式。盡管可以將它們分配給變量,但類似于普通函數(shù),但使用以下語法通常將它們用作匿名函數(shù)。
打印((拉姆達 NUM1,NUM2:NUM1 + NUM2)(4,6))
輸出:
$ python3 dzone.py font>
10
像大多數(shù)這些Python快捷方式一樣,lambda函數(shù)通常不會添加新功能。不過,一旦您習(xí)慣了語法,它可以降低代碼的復(fù)雜性。
5.裝飾器函數(shù)擴展Python函數(shù)
您可能會看到裝飾器函數(shù)與@decorator_name函數(shù)之上的函數(shù)一起使用。
@time_decorator <字體> 字體>
def cool_function:<字體> 字體>
打印(“做酷事”)<字體> 字體>
裝飾器的名稱可以是任何名稱。例如,它將與一起使用@panda。您了解如何創(chuàng)建自己的裝飾器即可使用它。例如,讓我們看一下http裝飾器的Django文檔。
來自 django。意見。裝飾。http import require_http_methods <字體> 字體>
<字體> 字體>
@require_http_methods([ “ GET”,“ POST” ])<字體> 字體>
def my_view(request):<字體> 字體>
#我現(xiàn)在可以假設(shè)只有GET或POST請求可以做到這一點 font>
#... font>
通過
該import 行允許您使用預(yù)制的裝飾器。在這種情況下,您要了解@require_http_methods 為您創(chuàng)建的名為的功能添加了其他功能my_view()。
較后,在這里告訴大家學(xué)習(xí)Python選擇適合的培訓(xùn)才是重要的。保質(zhì)量,求真實,能學(xué)會,可就業(yè),拿高薪的培訓(xùn)才是較佳選項,而達內(nèi)python培訓(xùn)(班)是你較佳的選擇!