但事實上這遊戲有許多可以改良的地方
首先我們就由整個程式只能被執行一次開始改良
相信有實作的同學們已經發現,整個遊戲只能玩一次
也就是說當你猜對數字,列印文字猜對了,遊戲結束
當你猜錯數字,列印文字猜錯了,遊戲結束
這沒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