零基礎學Python--分支與循環以及函數

這篇文章我們將介紹Python的分支和循環語句的寫法,並對函數稍作介紹,而這一篇文章過後我們基本上的語法的東西就講完了。而我一貫的理念是,實踐是最好的老師。本片文章結束後,我們就可以開始使用Python進行各種編程了。

事實上,編程的過程其實是其樂無窮的。在經歷了十幾年的編程生涯之後,其實會發現編程仍然是最有樂趣的事情之一。一般國內的程序員在30歲之後就會開始思考,主要是國內的研發環境和國內的教育確實是讓我們有一些問題要去思考,比如是否仍然從事編程的工作。這點上我並不能給大家建議繼續編程,但是Python還是可以的。閒來無事,寫幾行代碼訓練個神經網絡模型,基本上都是機器幹活,我們的事情其實並不太多。

言歸正傳,我們來繼續今天的內容。

注意,由於排版的原因,我們用“----”來代替一個縮進。

分支

分支語句其實很簡單,比如我們腦海裏經常會有這樣的邏輯:如果今天不下雨,我就去打籃球,否則我就在家裏看電視。那麼這個例子寫成代碼就是這樣的:

if it_rains():

----go_play_basketball()

else:

----stay_home_watch_TV()

看,很簡單吧。其實我們每一個不懂寫程序的人每天都在腦海裏寫程序,只是我們自己沒有感覺到,Python的易學易用性就很適合每個人來學習。

一個通用的分支程序流程如下圖:

在Python語言裏面,將所有非零和非空的值都定義爲True。並且在Python裏面支持如下類型的代碼結構:

if ...... :

----statements

else:

----statements

if ...... :

----if ...... :

--------statements

----else :

--------statements

else :

----statements

if ...... :

----statements

elif ...... :

----statements

else :

----statements

我們可以看到,分支語句還支持嵌套,當然了,比如某個小女孩腦海裏有這麼一個計劃,找媽媽要糖果吃,如果媽媽不給,那就再要蛋糕,如果蛋糕也不給,就再要求買個玩具。程序在3歲的小女孩的腦海裏,就是這麼簡單,其實程序無處不在。

當然分支語句也可以寫成單行,雖然我不贊成這樣寫,但是還是給出一個示例給大家。

if we_are_good_here(): we_will_go_to_next_topic()

循環

循環其實也很簡單,大部分同學都已經在腦海裏寫過循環語句了。比如:如果她不答應做我女朋友,我就一直追下去。類似的情形還有很多很多,就不一一舉例了。比如我們有如下一段程序:

i = 0

while i < 7:

----i += 1

----print(i)

我們會發現這段代碼打印出來的結果是:

1

2

3

4

5

6

7

一個基本的循環流程如下:

Python中的循環語句包括while循環和for循環,並且循環之間可以嵌套。上面我們已經看到了while循環的例子,我們來分別看一下for循環和循環嵌套的示例:

for i in (0, 8):

----print(i)

其運行結果爲:

0

1

2

3

4

5

6

7

我們再來看一個循環嵌套的例子,無論是for循環還是while循環都是可以互相嵌套的,我們僅僅來舉一個例子。

i = 0

while i < 3:

----for j in (0,2):

--------print(i, j)

--------j += 1

----i += 1

其運行結果爲:

0, 0

0, 1

1, 0

1, 1

2, 0

2, 1

對於循環,還有循環控制語句。Python中的循環控制語句如下,

break

continue

其中,break用來跳出一層循環,也就是說如果有嵌套時,它只跳出一層;而continue表示跳出當次循環進入到下一次循環。

我們來看一個例子。

i = 0

while True:

----i+= 1

----if i == 3:

--------continue

----if i >5:

--------break

----print(i)

我們可以看到其結果爲:

1

2

4

5

看到這裏,大家應該明白Python如何來寫分支和循環語句了。

函數

函數其實很簡單,我們在上述代碼中看到的print就是一個函數了!那麼我們如何來定義一個函數呢?我們來看下面的例子,def表示定義一個函數,基本語法了;first_function是函數名;para1則是函數的參數,個數可以多個,也可以沒有參數,para2也是,不過我們給它一個默認值,也就是說你在調用這個函數的時候可以省略para2,函數會默認para2爲3;return表示函數的返回值,當然也可以沒有返回值;:

def first_function(para1,para2=3):

----ret = para1 + para2

----return ret

我們來看一下如何調用這個函數:

ret = first_function(5, para2=4)

print(ret)

ret = first_function(5)

print(ret)

我們可以看到結果分別爲:

9

8

Python的函數的參數可以傳值,也可以傳引用。和C語言裏不一樣的是,C是純純的值傳遞,如果要修改函數外的值,那麼要傳遞指針進去,但是即便是指針,其實也是值傳遞,不過傳遞的是一個地址。我們來看Python的一個例子。

listA = [1, 2, 3, 4, 5]

a = 3

def second_function(para):

----para[2] = 'Hi'

def third_function(para):

----para = 4

second_function(listA)

print(listA)

third_function(a)

print(a)

我們會發現其運行結果爲:

[1, 2, 'Hi', 4, 5]

3

接下來我們具體來介紹一下Python函數參數的幾種類型。

Python對這幾類類型也有相應的名字,我們不管它,我們只分兩類就可以,固定參數和可變長參數。我們分別來看一個寫法和用法。

def fourth_function(para1, para2, para3=3):

----return para1+para2+para3

ret = fourth_function(1,2)

print(ret)

ret = fourth_function(para2=2, para1=1, para3=3)

print(ret)

ret = fourth_function(1,2,3)

print(ret)

ret = fourth_function(1,para2=2,para3=3)

print(ret)

大家可看到,這幾種調用方法都可以,可見Python的寫法是很靈活的。接下來我們來看看可變參數的寫法。

def fifth_function( para1, *paratuple ):

----print(para1)

----for para in paratuple:

--------print(para)

fifth_function(1)

fifth_function(1, 2, 3, 4, 5)

我們可以看到其運行結果分別爲:

1

1

2

3

4

​5

基本上我們關於分支、循環和函數的話題到此就講完了,基本上學習編程並不是一件很難的事情。用Python來說的話,甚至是簡單的有點過分的。任何一門編程語言的學習,最重要的還是多寫多讀代碼,但在整個學習的節奏和方向的把控上,一個好的老師是非常必要的。我們現行的很多的書籍也好、教程也好,編輯者可能甚至沒有編程經驗,所以大家需要花很多的時間去看很多冗餘的內容,人的精力是有限的,高效的學習是非常重要的。

人工智能與深度學習做量化請關注:AI量化(https://t.zsxq.com/RvfY37y) 星球限時免費,如需加入,請私信我獲得免費邀請碼!

零基礎學習Python與深度學習應用請關注星球:Python與深度學習 https://t.zsxq.com/bUFayZ3

微信公衆號:QTechAI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章