文章程式碼顯示

2017年8月16日 星期三

一起學 Python - 05 :While迴圈 改良猜數字遊戲(前置)

一起學 Python - 00 :Python安裝 實現簡單猜數字遊戲中我們很簡單的寫了一個猜數字的遊戲
但事實上這遊戲有許多可以改良的地方
首先我們就由整個程式只能被執行一次開始改良
相信有實作的同學們已經發現,整個遊戲只能玩一次

也就是說當你猜對數字,列印文字猜對了,遊戲結束
當你猜錯數字,列印文字猜錯了,遊戲結束

這沒Sense阿 !! 猜對結束就算了,猜錯完全不給人機會? 這不厚道

於是我們引入 While迴圈的方式,實現當玩家猜錯數字時,自動要求再次輸入數字,直到猜對為止,並且利用條件判斷式來幫助玩家知道數字太大或是太小,引導玩家猜對數字。

但在使用條件判斷式之前,我們先針對一個新的語法,While迴圈熟悉一下用法,打開一個新的腳本,複製以下程式碼
a = 0

while a <= 3:
    print(a)
    a = a + 1

程式碼的第一行首先賦與整數0給變量 a ,然後進入while迴圈內。

while迴圈的運作原理為,當後方的判斷式為True則執行下方子區塊的程式碼,否則退出while迴圈。在此我們一步一步的把自己當成機器,來理解會發什麼事。此處務必理解,並且跟著模擬一遍,因while迴圈以及for迴圈都會有數(三聲)數(四聲)的問題出現。

假裝現在自己是電腦,已經接收到第一行將變數存入a的指令。
來到第三行,此時 a = 0 ,滿足 a 小於等於 3 的判斷式 ,回傳給while為True, 執行子區塊執行指令
在此子區塊做了兩件事,分別為列印出變量 a 的值(此時 a = 0 ) , 以及將 a 自己加 1 後存入 a 自己

所以現在 a 是 1

但是 ! 程式並不會就這樣結束,不然就不叫迴圈了。

因為剛剛滿足了條件判斷式,所以Python會自動跑回去第三行 while判斷式的地方,現在 a 是 1 照樣滿足條件式,再次進入子區塊執行指令,列印出變量 a的值(此時 a = 1 ), 以及將 a 自己加 1 後存入 a 自己,所以現在 a 是 2


因為剛剛滿足了條件判斷式,所以Python會自動跑回去第三行 while判斷式的地方,現在 a 是 2 照樣滿足條件式,再次進入子區塊執行指令,列印出變量 a 的值(此時 a = 2 ), 以及將 a 自己加 1 後存入 a 自己,所以現在 a 是 3

因為剛剛滿足了條件判斷式,所以Python會自動跑回去第三行 while判斷式的地方,現在 a 是 3 照樣滿足條件式,再次進入子區塊執行指令,列印出變量 a 的值(此時 a = 3 ), 以及將 a 自己加 1 後存入 a 自己,所以現在 a 是 4

因為剛剛滿足了條件判斷式,所以Python會自動跑回去第三行 while判斷式的地方,現在 a 是 4 不滿足條件式

跳離while迴圈

以上或許看了頭昏眼花,但哪怕你要花十分鐘搞清楚這件事,請務必搞懂。

由以上的分析可以得知,我們得到的應該是
0
1
2
3











而此時 a 的值是多少呢? 是3? 是4?

仔細思考一下會發現,因為 a是4 所以才使得while迴圈跳開,所以此時答案 a 是 4



↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引