首頁 > 軟體

python裡的條件語句和迴圈語句你瞭解多少

2022-02-16 10:03:21

前言

通常都聽到別人說,計算機很牛逼,很聰明,其實計算機一點都不聰明,光是你要跟他溝通,都會氣 shi你,聰明的是在寫程式的你。

寫程式就是跟計算機溝通,告訴它要做什麼。

竟然是這樣,那麼肯定缺少不了一些溝通邏輯。比如你要告訴計算機在什麼情況下做什麼?或者在哪個時間點做什麼?

這都需要用到邏輯判斷。這一章節,主要就是說這個。

一、條件語句

1、什麼是條件語句

Python 條件語句跟其他語言基本一致的,都是通過一條或多條語句的執行結果( True 或者 False )來
決定執行的程式碼塊。

Python 程式語言指定任何非 0 和非空(null)值為 True,0 或者 null 為 False。

執行的流程圖如下:

2、if 語句的基本形式

Python 中,if 語句的基本形式如下:

if 判斷條件: 
     執行語句…… 
else:
     執行語句……

之前的章節也提到過,Python 語言有著嚴格的縮排要求,因此這裡也需要注意縮排,也不要少寫了冒號: 。

if 語句的判斷條件可以用>(大於)、<(小於)、==(等於)、>=(大於等於)、<=(小於等於)來表示其關係。

例如:

上面也說到,非零數值、非空字串、非空 list 等,判斷為 True,否則為 False。因此也可以這樣寫:

可見,把結果列印出來了。

那如果我們把 num 改為空字串呢?

很明顯,空字串是為 False 的,不符合條件語句,因此不會執行到 print(‘Hello Python’) 這段程式碼。

還有再囉嗦一點,提醒一下,在條件判斷程式碼中的冒號 : 後、下一行內容是一定要縮排的。不縮排是會報錯的。

冒號和縮排是一種語法。它會幫助 Python 區分程式碼之間的層次,理解條件執行的邏輯及先後順序。

3、if 語句多個判斷條件的形式

有些時候,我們的判斷語句不可能只有兩個,有些時候需要多個,比如上面的例子中大於 60 的為及
格,那我們還要判斷大於 90 的為優秀,在 80 到 90 之間的良好呢?

這時候需要用到 if 語句多個判斷條件,

用虛擬碼來表示:

輸出的結果:

4、if 語句多個條件同時判斷

有時候我們會遇到多個條件的時候該怎麼操作呢?

比如說要求 java 和 python 的考試成績要大於 80 分的時候才算優秀,這時候該怎麼做?

這時候我們可以結合 or 和 and 來使用。

or (或)表示兩個條件有一個成立時判斷條件成功

and (與)表示只有兩個條件同時成立的情況下,判斷條件才成功。

例如:

輸出結果:

注意:if 有多個條件時可使用括號來區分判斷的先後順序,括號中的判斷優先執行,此外 and 和 or 的優先順序低於 >(大於)、<(小於)等判斷符號,即大於和小於在沒有括號的情況下會比與或要優先判斷。

5、if 巢狀

if 巢狀是指什麼呢?

就跟字面意思差不多,指 if 語句中可以巢狀 if 語句。

比如上面說到的例子,也可以用 if 巢狀來寫。

當然這只是為了說明 if 條件語句是可以巢狀的。如果是這個需求,我個人還是不太建議這樣使用 if 巢狀的,因為這樣程式碼量多了,而且巢狀太多,也不方便閱讀程式碼。

二、迴圈語句

1、什麼是迴圈語句

一般程式語言都有迴圈語句,為什麼呢?

那就問一下自己,我們弄程式是為了幹什麼?

那肯定是為了方便我們工作,優化我們的工作效率啊。

而計算機和人類不同,計算機不怕苦也不怕累,也不需要休息,可以一直做。

你要知道,計算機最擅長就是做重複的事情。

所以這時候需要用到迴圈語句,迴圈語句允許我們執行一個語句或語句組多次。

迴圈語句的一般形式如下:

在 Python 提供了 for 迴圈和 while 迴圈。

這裡又有一個問題了,如果我想讓他執行了一百次之後停止,那該怎麼做呢?

這時候需要用到一些控制迴圈的語句:

這些控制語句是為了讓我們告訴程式什麼時候停止,什麼時候不執行這次迴圈。

2、 for 迴圈語句

我們先來看下 for 迴圈語句。

它的流程圖基本如下:

基本的語法格式:

那麼我們根據他的基本語法格式,隨便寫個例子測試一下:

輸出的結果如下:

從列印結果來看,它就是把字串 Hello 兩點水 一個一個字元的列印出來。

那如果我們把字串換為字典 dict 呢?

你會發現只列印了字典 dict 中的每一個 key 值。

很多時候,我都是建議大家學到一個新的知識點,都多去嘗試。

你嘗試一遍,自己觀察出來的結論,好過別人說十遍。

如果你不知道怎麼去試?

可以根據我們的例子舉一反三,比如上面的 for 迴圈,試了字串,字典,那我們之前學的基本資料型別還有什麼呢?

不記得可以再返回去看看,可以把所有的基本型別都拿去嘗試一下。

比如,你試了之後,會發現整數和浮點數是不可以直接放在 for 迴圈裡面的。

3、 range() 函數

for 迴圈還常常和 range() 函數搭配使用的。

如果不知道 range() 函數 , 我們直接通過一段程式來理解。

使用 range(x) 函數,就可以生成一個從 0 到 x-1 的整數序列。

如果是 range(a,b) 函數,你可以生成了一個左閉右開的整數序列。

其範例子中的 range(3) 可以寫成 range(0,3) , 結果是一樣的。

其實使用 range() 函數,我們更多是為了把一段程式碼重複執行 n 次。

這裡提個問題,你仔細觀察 range() 函數,上面說到的不管是 1 個引數的,還是 2 個引數的都有什麼共同的特點?

不知道你們有沒有發現,他都是每次遞增 1 的。

range(3) 就是 0 ,1,2 ,每次遞增 1 。 range(3,6) 就是 3 ,4 ,5 ,也是每次遞增 1 的。

那能不能每次不遞增 1 呢?

比如我想遞增 2 呢?

在程式的編寫中,肯定會遇到這樣的需求的。而 python 發展至今,range 函數肯定也會有這種功能。

所以 range 函數還有一個三個引數的。

比如 range(0,10,2) , 它的意思是:從 0 數到 10(不取 10 ),每次間隔為 2 。

4、While 迴圈語句

While 迴圈和 for 迴圈的作用是一樣的。

我們先來看看 While 迴圈語句的樣子。

程式輸出的結果是:

這個例子是計算 1 到 100 所有整數的和。

5、for 迴圈和 whlie 迴圈的區別

之前也提到過了,如果一種語法能表示一個功能,那沒必要弄兩種語法來表示。

竟然都是迴圈,for 迴圈和 while 迴圈肯定有他們的區別的。

那什麼時候才使用 for 迴圈和 while 迴圈呢?

for 迴圈主要用在迭代可迭代物件的情況。while 迴圈主要用在需要滿足一定條件為真,反覆執行的情況。 (死迴圈+break 退出等情況。)部分情況下,for 迴圈和 while 迴圈可以互換使用。

例如:

雖然列印的結果是一樣的,但是細細品味你會發現,他們執行的順序和知道的條件是不同的。

6、巢狀迴圈

迴圈語句和條件語句一樣,都是可以巢狀的。

具體的語法如下:

for 迴圈巢狀語法

除此之外,你也可以在迴圈體內嵌入其他的迴圈體,如在 while 迴圈中可以嵌入 for 迴圈, 反之,你可
以在 for 迴圈中嵌入 while 迴圈

比如:

當我們需要判斷 sum 大於 1000 的時候,不在相加時,可以用到 break ,退出整個迴圈。

有時候,我們只想統計 1 到 100 之間的奇數和,那麼也就是說當 count 是偶數,也就是雙數的時候,我們需要跳出當次的迴圈,不想加,這時候可以用到 break

當然,這裡還用到了 for … else 語句。

其實 for 迴圈中的語句和普通的沒有區別,else 中的語句會在迴圈正常執行完(即 for 不是通過 break
跳出而中斷的)的情況下執行。

當然有 for … else ,也會有 while … else 。他們的意思都是一樣的。

三、條件語句和迴圈語句綜合範例

1、列印九九乘法表

2、判斷是否是閏年

總結

本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!            


IT145.com E-mail:sddin#qq.com