python是最容易學習的程式語言之一,其語法近似英語。通常,初學者只會遇到一些小麻煩,如強制縮排、在函式中使用self等。
他們可以自己編寫python**來解決問題,然而在閱讀他人**時往往會遇到問題。
以下是幫助大家更好地理解python的五點建議。
1. * args和 ** kwargs是函式引數
如果您檢視python模組或者這些模組的相關文件,您可能會看到args和**kwargs。它們看起來像c語言裡的指標,實際上並非如此。args只是函式的引數列表。**kwargs是關鍵字引數的字典。
*args示例:
輸出:
**kwargs示例:
輸出:args和kwargs示例的**位於檔案args_example.py,可在此處獲取。
2.列表解析是使用迴圈時的一種快捷方式
列表解析是返回列表的一種簡便方法。在**中,for迴圈寫作for number in args。
當迴圈中的表示式為num **2時,返回的列表值將為引數的平方。
輸出:您可以在列表解析的末尾新增過濾器以過濾輸出結果。例如,僅對偶數進行平方,可以採用如下過濾方式:
輸出:列表解析並未對for迴圈新增任何特殊的功能,採用這種方式是因為它更為簡短,並且在習慣語法後會使**更易於閱讀。不過有些開發者會過度使用列表解析,反而使**更難理解。這一點需要注意,複雜的列表解析和多個迴圈巢狀並非最佳實踐。
如果您剛開始學習python,並遇到乙個複雜的for迴圈,可以在網上搜尋列表解析並檢視如下三個元件的語法:
表示式for迴圈
過濾器3. f-strings可以替代.format()
python非常適合處理字串,至少提供了3到4種將變數插入字串的方法。這些方法大多數都較為笨重,但是有一種非常酷。
字串連線
之前您也許寫過如下**:
輸出:這種寫法難以閱讀,並且容易出現錯誤。即使存在語法高亮,仍會出現缺少空格的情況。
字串替換
字串替換可以幫助減少錯誤。
輸出:使用字串替換的示例位於檔案format_example.py,可在此處獲取。
字串格式
乙個更好的方式是使用.format()方法,如下所示:
儘管.format在字串連線方面有很大地提公升,但處理上仍然很笨重。
f-strings
要使用f-strings,首先需要將python公升級至3.6或3.7版本。
4. lambda函式是匿名的
python lambda函式是一種快捷方式。儘管可以將其指定為某變數,類似於普通函式,但通常情況下使用如下語法寫作匿名函式。
輸出:如同python中的多數快捷方式,lambda函式並不會帶來新的功能。儘管如此,使用此語法可以減少**的複雜程度。
5. 使用裝飾器來擴充套件python函式
使用裝飾器時,通常會在乙個函式上方標註@decorator_name。
裝飾器可以任意命名,例如@panda。在使用裝飾器時,您無需了解如何建立自己的裝飾器以便使用,可以參考django的http裝飾器的相關文件。
import這行**允許您使用預先構建好的裝飾器。在這種情況下,您只需了解@require_http_methods為您建立的函式my_view()新增的額外功能即可。
補充建議
由於我主要和一群專注於特定問題的人討論python程式設計,這裡,我希望得到適用於新手程式設計師的其他建議,以幫助他們更好地在開發者社群進行交流。
致Python初學者 Anaconda入門使用指南
魚心fishstar 打算學習 python 來做資料分析的你,是不是在開始時就遇到各種麻煩呢?相信大多數 python 的初學者們都曾為環境問題而頭疼不已,但你並不孤獨,大家都是這麼折騰過來的。為了在入門時少走彎路,並且讓高漲的積極性不至於太受打擊,這裡推薦使用 anaconda 來管理你的安裝環...
給初學者的建議
一名初學者,首先要找一本好的入門書籍 平台裡有推薦 把程式結構 資料型別,陣列 函式和結構體 這幾個部分了解 了之後,就可以 寫 程式了。千萬不要把書看的太細緻,那樣的話會覺得程式設計太繁瑣,不要背參考書式的學習。就像乙個小孩要學說話,他需要模仿和試錯,不斷的矯正,最終會很好的表達,如果一開始讓他把...
VHDL初學者的建議
1.vhdl語言用於描述硬體,必須體會其 併發執行 的特性以及其他硬體相關特性 2.注意vhdl語言的可綜合性與可 特性 初學者一般是以設計可綜合的vhdl程式為目的,注意vhdl的可綜合性和可 性 3.注意基本模組的vhdl設計方法 對於基本模組的vhdl設計多加練習實踐能快速提公升初學者的vhd...