文章程式碼顯示

2017年8月16日 星期三

一起學 Python - 06 :While迴圈 改良猜數字遊戲 \n與三引號的使用

考量到前一篇大家已經頭昏眼花了
如果我再混上改良遊戲,相信大家應該會怒關網頁
為了讓大家撐過來,我就 ...... 把他分成兩篇(!?)

如前篇所述, while 迴圈主要是為了改良猜數字遊戲,在猜錯時可以重複猜,且會提示玩家較大或較小。

為了讓大家重拾信心,我就直接把Code貼上來了

temp = input("輸入猜想的數字")
guess = int(temp)

if guess == 6 :
    print("""哎呀一次就猜對了
你神仙不?""")
    

else :
    while guess != 6:
        if guess > 6 :
            print("太大啦~~~~~~~\n")
        else :
            print("在大一點啊哥們\n")

        temp = input("再次輸入猜想的數字") 
        guess = int(temp)
    print("終於猜對啦")

print("\n遊戲結束 .")     

第一二行
一起學 Python - 00 :Python安裝 實現簡單猜數字遊戲中所使用,讓使用者輸入數字並且轉為整數數據型態存入 guess

第四行
直接判斷 guess是否等於 6 ,若是,則直接 print 文字。
此處使用的三引號,為 Python 列印多行文字的寫法,知道即可。

第九行
也就是 guess 不等於 6 的 else 情形。此處需要配合下圖來輔助理解

由此可以看出
else 包含了整個紅色實線區塊;
內部由 while 迴圈包含了藍色實線區塊;
更內部由 if ... else 組成的橘色虛線區塊。

倘若現在玩家輸入的數字是8,則程式會跳入else的紅色實現區塊
接著馬上遇到 while 的藍色實線區塊,由於數字 8 並不等於 6 ,也就是回傳 True 給 while 迴圈使其成立。while 迴圈內部又遇到橘色虛線的 if...else 區塊。藉由 if ...else 區塊來幫助使用者判斷數字太大還是太小。

而 if ... else 列印文字後,會接著執行第十六及十七行,讓玩家可以再次輸入數字。而由於剛剛 while 判斷式成立,故其執行完 while 藍色實線區域的指令後,會再次回到 while 判斷式再次判斷,此時的 guess 會變為玩家再次輸入的值。藉由這樣的迴圈實現讓使用者不停輸入的功能。

直到使用者猜對數字 6 後,跳出 while 迴圈,回到紅色實線區塊執行第十八行的終於猜對啦

跳出 else 紅色實線區塊,最後執行第二十行的遊戲結束。

而在 print 函數裡面的 \n 為換行字元,僅是為了讓文字別擠在一塊。

一次就猜對的情形













非一次猜對的情形

















經過這樣的解析,有沒有覺得 while 迴圈學的有值得呢!!
事實上這只是一個簡單的應用,舉凡這種需要判斷而迴圈的情況都會用上 while 函數
仔細的想想生活上其實有很多這樣的例子
就舉提款機密碼輸入吧! 當輸入密碼錯誤時系統會自動清空輸入欄並且要使用者重新輸入
這不就是典型的 while 迴圈應用嗎?

而輸入三次之後會鎖卡,事實上只要發揮一點想像力就可以把此次的練習改造而成,這部分就讓大家自己練習拉~

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

Blog 使用方針與索引