Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

Python 程序員 Numbers 木辛老師帶你玩轉編程 2019-06-20

小朋友們好呀~

今天的課程我們要給大家講一講程序中動態可變的循環邏輯和嵌套循環的知識。

請點擊右上角“關注”按鈕關注我們喲:跟著木辛老師學習Python編程知識,變身快樂的編程達人吧~

我們已經看到了,在循環體(也就是代碼塊)中可以再放入其他的代碼,這些代碼也可以有自己的代碼塊

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

就像上圖中標註的那樣,紅色邊框中的是while代碼塊,藍色和黃色邊框中的是if和elif代碼塊。

Python還支持將一個循環放到另一個循環中,這樣的循環就叫做嵌套循環。

嵌套循環

小朋友們還記得嗎?之前的課程裡學過乘法表程序,我們稍微改一下之前的程序,就像這樣

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

這樣的話,程序自動打印出了5的乘法表。那麼我想問下小朋友們,如果我想打印出3, 4, 5的乘法表應該怎麼寫這個程序呢?

嗯嗯,有的小朋友說可以重複這段代碼,將multiplier分別置為3, 4, 5。說的對,這樣是可以實現的。

但是,小朋友們還記得嗎?我們強調過,作為一個優秀的程序員,一定要秉持簡潔簡潔,再簡潔的態度。所以呀,我們就需要看下通過Python能不能採用更簡潔的辦法實現這個需求呢?

答案是有的,就是今天我們要學習的嵌套循環,代碼如下所示

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

這個程序的思路是這樣的,剛開始的程序我們設置了乘數是5,通過循環for i in range(1, 10) 我們打印出了5的乘法表;

那麼我們將乘數也放到循環的代碼塊中,通過之前課程學過的range(3, 6)函數,實現對乘數的循環,就實現了3,4,5的乘法表的打印。

大家感覺是不是很簡潔呀!

我們把這種循環代碼塊放入另一個循環中的方式叫做:嵌套循環。

大家學了這麼多,是不是感覺編程越來越有意思了呀?

編程的樂趣不止於此喲,小朋友們記得持續關注呀!

跟著我們獲取更多的編程知識,做一個快樂的編程達人吧;快樂編程,快樂成長!

我們接下來啊,給大家講一下更加有趣的一個知識,就像變魔術一樣,大家準備好了嗎?

可變循環

固定的數(比如range()函數中使用的數)也稱為常數(constant)。如果在一個for循環的range函數中使用常數,那麼程序運行時總會運行相同的次數。符合這種情況的編碼,我們稱為硬編碼,稱這種循環次數是硬編碼的,因為他在代碼中被定義了,而且永遠也不會變化。但是實際的編程過程中,這種實現不太常用,也沒有太多的實際意義。

那我們怎麼辦呢?

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

這個問題的答案很簡單,請小朋友們回憶一下之前的課程裡講到過變量這個概念。

傳送門點擊去複習☟☟☟

Python小課堂 第五課 之 神奇的內存和變量

對了!我們就要通過變量這個東西,動態的控制循環的次數,請看我們的一個新的例子

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

有個小朋友問了:我想打印出5遍內容,為什麼才輸出來4遍呢?

嗯,這個問題問的非常好!

為什麼?大家還記得我們之前的課程裡講到:Python的range函數是前閉後開的模式嗎?

傳送門點擊去複習☟☟☟

Python小課堂 第十課之轉呀轉 轉圈圈

所以呀,如果只是指定到輸入的numbers的話,肯定會少一次循環輸出;

所以,如果我們想要完整的輸出內容,就要將變量number + 1;讓我們看看修改後的效果哈

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

哇!正確的結果終於出現了!

是的,小朋友們在學習新知識的過程中,一定要經常複習已經學到的知識喲,所謂:溫故知新是也。

可變的嵌套循環

我們今天學習了嵌套和可變的循環,那麼是不是可以將兩個知識點結合起來呢?

嗯,非常好,小朋友們又朝著優秀的程序員的目標前進了一大步。在編程的這個活動中,舉一反三,觸類旁通的能力,可以讓我們成為一個更加優秀的軟件工程師。

那我們來試試吧☟☟☟☟☟

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

這個程序的第一行和第二行詢問用戶想要幾個數據塊,每個數據塊輸出多少行。程序使用變量num_blocks,num_lines記住這些答案,接下來是兩個循環:

  1. 內循環打印出每個數據塊的第幾行
  2. 外循環控制打印數據塊

大家注意到一個細節:咱們通過print(“\n”)打印出了一個空行,這樣呢咱們就可以很清晰地看出不同的數據塊了。

循環進階—— 更多的可變嵌套

Python小課堂第十二課之可變循環和嵌套邏輯顯示出變化的輸出結果

哇塞!我們嵌套了三個for循環呀!

是的,Python本身並沒有對循環的嵌套層數做限制;理論上咱們可以嵌套很多很多層喲。

木辛博士說

但是小朋友們請記住一點喲:過多的嵌套並不提倡,因為過多的嵌套會導致編寫的代碼可讀性太差,不利於程序的維護和傳播!

好了,今天的課程就到這裡了~

咱們來總結下今天學習的主要內容:

  1. 嵌套循環
  2. 可變循環
  3. 多層嵌套可變循環

循環邏輯在編程裡佔有非常重要的地位,應用也是非常廣泛的,請小朋友們務必牢牢掌握喲!

那咱們做幾個測試題鞏固一下吧

  1. Python如何建立可變循環?
  2. Python中如何建立嵌套循環?

小朋友們不要忘記關注我們喲 ,下期課程會帶領大家認識強大的列表功能:《Python小課堂第十三課之列表功能:可以將我們的數據收集起來的強大容器》

快樂編程,快樂成長,咱們下次課再見!

相關推薦

推薦中...