您現在的位置是:首頁 > 手機遊戲首頁手機遊戲
Python基礎知識詳解(四):控制流篇
- 2022-07-19
python冒號後縮排幾個空格
作者 | CDA資料分析師
迴圈語句
1、for迴圈
For迴圈用來遍歷任何序列的專案,這個序列可以是一個列表也可以是一個字串,針對這個序列中的每個專案去執行相應的操作。
舉一個例子,一個數據分析師的必修課主要有Excel、SQL、Python和統計學,你要想成為一名資料分析師,那麼這四門課是必須要學的呃,且學習順序也應該是先Excel,再SQL,然後Python,最後是統計學。依次學習這四門課的過程就是在遍歷一個for迴圈。
2、while迴圈
While迴圈用來迴圈執行某程式,即當條件滿足時,一直執行某程式,直到條件不滿足時,終止程式。
舉一個例子,七週成為資料分析師,即只要你按課程表學習七週,你就算是一名資料分析師了,可以去找工作了。這裡就是以你是否已經學習了七週作為判斷條件,如果學習時間沒有達到七週,那麼你就需要一直學,直到學習時間大於七週,你才可以停止學習,去找工作了。用while語句執行時的具體流程如下圖所示:
下面為其實現程式碼:
條件語句
1、if語句
if條件語句是程式先去判斷某個條件是否滿足,如果該條件滿足,則執行判斷語句後的程式。If條件後面的程式需要首行縮排。
舉一個例子,如果你好好學習資料分析師的必備技能,那麼你就可以找到一份資料分析相關的工作,但是如果你不好好學習,那麼你很難找到一份資料分析相關的工作。
我們用1表示好好學習,0表示沒有好好學習,並賦初值為1,也就是假設你好好學習了。
當判斷條件為是否好好學習時,具體流程如下圖所示:
下面為其實現程式碼:
當判斷條件為是否沒有好好學習時,具體流程如下圖所示:
下面為其實現程式碼:
因為條件不滿足,所以執行if條件後面的程式,即輸出為空。
2、else語句
else語句是if語句的補充,if條件只說明瞭當條件滿足時程式做什麼,沒有說當條件不滿足時程式做什麼。而else語句正好是用來說明當條件不滿足時,程式做什麼。
當判斷條件為是否好好學習時,具體流程如下圖所示:
下面為其實現程式碼:
當判斷條件為是否沒有好好學習時,下面為其程式碼實現:
3、elif語句
elif語句可以近似理解成else_if,前面提到的if語句、else語句都只能對一條語句進行判斷,但是當你需要讀多條語句進行判斷時,就可以用elif語句判斷。
elif中可以有else語句,也可以沒有,但是必須有if語句,具體執行順序是先判斷if後面的條件是否滿足,如果滿足則執行if為真時的程式,結束迴圈;如果if條件不滿足時就判斷elif語句。可以有多個elif語句,但是隻有0個或者1個elif語句會被執行。
比如你要猜某個人考試考了多少分,你該怎麼猜?先判斷這個人是否及格(60分為準),如果不及格,分數範圍直接猜一個小於60分的即可,如果及格了再去判斷他的分數到底在哪個分數段,具體流程如下圖所示:
程式碼實現如下圖所示:
函式
函式是再一個程式中可以被重複使用的一段程式。這段程式是由一塊語句和一個名稱組成的,只要函式定義好以後,你就可以在程式中透過該名字呼叫執行這段程式。
1、普通函式
普通函式一般由函式名(必需)、引數、語句塊(必需)、return、變數這幾部分組成。
函式定義語法如下圖所示:
定義函式使用的關鍵詞是def,函式名後面的括號裡面放參數(引數可以為空),引數後面要以冒號結尾,語句塊要縮排四個空格,語句塊是函式具體要做的事情。
定義一個名為learn_python的函式:
上面的函式利用函式名learn_python呼叫了多次learn_python對應的語句塊。
函式的引數有形參(形式引數)和實參(實際引數)兩種,在定義函式的時候使用的引數是形參,比如上面的location;在呼叫函式時傳遞的引數是實參,比如上面的地鐵。
上面語句塊中直接執行了print操作,沒有返回值,我們也可以利用return對語句塊的執行結果進行返回。
定義一個含有return的函式:
這次呼叫函式以後,沒有直接進行print操作,而是將執行結果利用return進行了返回。
定義一個含有多個引數的函式:
2、匿名函式
匿名函式,顧名思義就是沒有名字的函式,也就是省略了def定義函式的過程。Lambda只是一個表示式,沒有函式體,lambda使用方法如下:
arg1,arg2,arg3表示具體的引數,expresion表示引數要執行的操作。
現在我們分別利用普通函式和匿名函式兩種方式來建立一個兩數相加的函式,讓大家看看兩者的不同。
普通函式如下:
匿名函式如下:
匿名函式比普通函式簡潔的多,也是比較常用的,大家務必熟練的掌握。
高階特性
1、列表生成式
現在有一個列表,你需要對該列表中的每一個,你需要對該列表中的每個值求平方,然後將結果組成一個新列表,我們先看看普通方法怎麼實現的。
普通方法實現如下:
列表生成式實現如下:
上面的需求比較簡單,你可能沒有領略到列表生成式的妙用。我們再來看一些複雜的需求。
現在有兩個列表,需要把這兩個列表中的值兩兩組合,我們分別用普通方法和列表生成式實現一下。
普通方法實現如下;
列表生成式實現如下:
上面的需求用普通的方法要巢狀兩個for迴圈,但是用列表生成式只要一行程式碼即可。如果資料量很小,那麼for迴圈巢狀執行速度還行;如果資料量很大的話,那麼for迴圈巢狀太多的程式,執行就會變的很慢。
2、map函式
map函式的表現形式是map(function,agrs),表示對序列args中的每個值進行function操作,最終得到一個結果列。
map函式生成的結果序列不會直接把全部結果顯示出來,要想獲取到結果需要for迴圈遍歷取出來。也可以使用list方法,將結果值生成一個列表。
模組
模組是升級版的函式,我們前面說過,在一段程式中可以透過函式名多次呼叫函式,但是必須在定義函式的這段程式裡面呼叫,如果換到其他程式裡該函式就不起作用了。
模組之所以是升級版的函式,是因為在任意程式中都可以透過模組名去呼叫該模組對應的程式。
你要呼叫函式首先需要定義一個函式,同理,你要呼叫模組,首先需要匯入模組,匯入模組的方法主要有兩種。
資料分析領域用的比較多的三個模組分別是Numpy、Pandas、matplotlib,Python中還有很多類似的模組,正是因為這類模組的存在,使得Python變的很簡單,受到越來越多人的歡迎。