零基礎入門學習python_004筆記及作業_猜數字小遊戲V2.1
==============================以下為程式碼==============================
#猜數字遊戲2.0版。新版功能說明:
#答案隨機產生
#新增提示猜數過大或過小的功能
#猜到對為止
#導入random模組
#變數宣告secret = 1到10中間的隨機數字
import random
secret = random.randint(1,10)
#螢幕顯示Elliot Production
print("----------Elliot Production----------")
#變數宣告temp = 玩家輸入的數字。輸入前螢幕提示guess the number from 1 to 10
temp = input("guess the number from 1 to 10: ")
#變數宣告guess = 以數字形式顯示玩家所輸入的變數「temp」
guess = int(temp)
#使用while循環下面縮排的程式碼:當guess不等於secret的時候,執行下列動作
#變數宣告temp = 玩家輸入的數字。輸入前螢幕提示So sorry, you're wrong! Please guess again
#變數宣告guess = 以數字形式顯示玩家所輸入的temp
#當guess等於secret的時候,螢幕顯示文字
while guess != secret:
temp = input("So sorry, you're wrong! Please guess again: ")
guess = int(temp)
if guess == secret:
print("Wonderful")
print("But still no reward")
#當guess不等於secret的時候
else:
#若guess大於secret,螢幕顯示文字
if guess > secret:
print('Hey, too BIG')
#若guess不大於secret的時候,螢幕顯示文字
else:
print('Hey, too small')
#螢幕顯示文字
print("Game Over")
#猜數字遊戲2.0版。新版功能說明:
#答案隨機產生
#新增提示猜數過大或過小的功能
#猜到對為止
#導入random模組
#變數宣告secret = 1到10中間的隨機數字
import random
secret = random.randint(1,10)
#螢幕顯示Elliot Production
print("----------Elliot Production----------")
#變數宣告temp = 玩家輸入的數字。輸入前螢幕提示guess the number from 1 to 10
temp = input("guess the number from 1 to 10: ")
#變數宣告guess = 以數字形式顯示玩家所輸入的變數「temp」
guess = int(temp)
#使用while循環下面縮排的程式碼:當guess不等於secret的時候,執行下列動作
#變數宣告temp = 玩家輸入的數字。輸入前螢幕提示So sorry, you're wrong! Please guess again
#變數宣告guess = 以數字形式顯示玩家所輸入的temp
#當guess等於secret的時候,螢幕顯示文字
while guess != secret:
temp = input("So sorry, you're wrong! Please guess again: ")
guess = int(temp)
if guess == secret:
print("Wonderful")
print("But still no reward")
#當guess不等於secret的時候
else:
#若guess大於secret,螢幕顯示文字
if guess > secret:
print('Hey, too BIG')
#若guess不大於secret的時候,螢幕顯示文字
else:
print('Hey, too small')
#螢幕顯示文字
print("Game Over")
======================================================================
第四課的時候提出三項修正猜數字小遊戲的要求:
1. 猜錯時程序應給予過大或過小的提示
2. 提供三次猜測機會
3. 謎底應為隨機
課堂中小甲魚幫我們解決了第一項跟第三項要求,
就是上述的程式碼。
而作業就是提出第二項要求的解答。
解答概念:
宣告變數count = 3,每猜測一次數字後count -1,
當count = 0時遊戲結束。
小甲魚給予的提示是:使用Boolean值,
也就是用「and」、「or」的判斷式來達成程式邏輯。
============================第一次解答程式碼============================
count = 3
while guess != secret or count == 0:
temp = input("So sorry, you're wrong! Please guess again: ")
guess = int(temp)
count = count -1
if count == 0:
print('so sad')
if guess == secret:
print("Wonderful")
print("But still no reward")
else:
if guess > secret:
print('Hey, too BIG')
else:
print('Hey, too small')
======================================================================
結果很慘。
用這種寫法,那中斷迴圈的條件只能是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count不等於0,所以判斷式「count == 0」此時為「False」。
False or False = False,才能中斷迴圈。
所以會產生幾種結果:
1. 假設第一次就猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「False」。
False or False = False,
此時可以正常結束程式。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count == 0」此時為「True」。
True or True = True,
迴圈條件成立,迴圈繼續,產生bug。
3. 假設第三次剛好猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count等於0,所以判斷式「count == 0」此時為「True」。
False or True = True
迴圈條件成立,迴圈繼續,產生bug。
4. 超過三次(假設第四次)才猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0(此時該是-1),所以判斷式「count == 0」此時為「False」。
False or False = False,
此時可以正常結束程式。
因為邏輯不清楚,所以在迴圈這裡debug了很久。
============================第二次解答程式碼============================
while guess != secret and count == 0:
省版面,下略...
======================================================================
寫成這樣的話,
結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count不等於0,所以判斷式「count == 0」此時為「False」。
True and True = True,但是只要兩邊有其一是False則為False,
所以只要條件兩者達成其一即可。
當猜錯謎底時:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count不等於0,所以判斷式「count == 0」此時為「False」。
True and False = False,
所以while迴圈會中斷。
debug失敗。
============================第三次解答程式碼============================
while guess != secret or count != 0:
省版面,下略...
======================================================================
改成這樣呢?
結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count等於0,所以判斷式「count != 0」此時為「False」。
False or False = False,才能中斷迴圈。
所以會產生幾種結果:
1. 假設第一次就猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「True」。
False or True = True,
迴圈條件成立,迴圈繼續,產生bug。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count != 0」此時為「False」。
True or False = True,
迴圈條件成立,迴圈繼續,產生bug。
3. 假設第三次剛好猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count等於0,所以判斷式「count != 0」此時為「False」。
False or False = False
此時才能結束程式。
4. 超過三次(假設第四次)才猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0(此時該是-1),所以判斷式「count != 0」此時為「True」。
False or True = True,
迴圈條件成立,迴圈繼續,產生bug。
============================最終解答程式碼============================
while guess != secret and count != 0:
省版面,下略...
======================================================================
此時結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count等於0,所以判斷式「count != 0」此時為「False」。
True and True = True,才能執行迴圈,
所以會產生幾種結果:
1. 假設三次以內猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「True」。
False and True = False,
迴圈中止,程式正常結束。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count != 0」此時為「False」。
True and False = False,
迴圈中止,程式正常結束。
邏輯釐清花了我好久的時間去思考,
好累....~"~
第四課的時候提出三項修正猜數字小遊戲的要求:
1. 猜錯時程序應給予過大或過小的提示
2. 提供三次猜測機會
3. 謎底應為隨機
課堂中小甲魚幫我們解決了第一項跟第三項要求,
就是上述的程式碼。
而作業就是提出第二項要求的解答。
解答概念:
宣告變數count = 3,每猜測一次數字後count -1,
當count = 0時遊戲結束。
小甲魚給予的提示是:使用Boolean值,
也就是用「and」、「or」的判斷式來達成程式邏輯。
============================第一次解答程式碼============================
count = 3
while guess != secret or count == 0:
temp = input("So sorry, you're wrong! Please guess again: ")
guess = int(temp)
count = count -1
if count == 0:
print('so sad')
if guess == secret:
print("Wonderful")
print("But still no reward")
else:
if guess > secret:
print('Hey, too BIG')
else:
print('Hey, too small')
======================================================================
結果很慘。
用這種寫法,那中斷迴圈的條件只能是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count不等於0,所以判斷式「count == 0」此時為「False」。
False or False = False,才能中斷迴圈。
所以會產生幾種結果:
1. 假設第一次就猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「False」。
False or False = False,
此時可以正常結束程式。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count == 0」此時為「True」。
True or True = True,
迴圈條件成立,迴圈繼續,產生bug。
3. 假設第三次剛好猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count等於0,所以判斷式「count == 0」此時為「True」。
False or True = True
迴圈條件成立,迴圈繼續,產生bug。
4. 超過三次(假設第四次)才猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0(此時該是-1),所以判斷式「count == 0」此時為「False」。
False or False = False,
此時可以正常結束程式。
因為邏輯不清楚,所以在迴圈這裡debug了很久。
============================第二次解答程式碼============================
while guess != secret and count == 0:
省版面,下略...
======================================================================
寫成這樣的話,
結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count不等於0,所以判斷式「count == 0」此時為「False」。
True and True = True,但是只要兩邊有其一是False則為False,
所以只要條件兩者達成其一即可。
當猜錯謎底時:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count不等於0,所以判斷式「count == 0」此時為「False」。
True and False = False,
所以while迴圈會中斷。
debug失敗。
============================第三次解答程式碼============================
while guess != secret or count != 0:
省版面,下略...
======================================================================
改成這樣呢?
結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count等於0,所以判斷式「count != 0」此時為「False」。
False or False = False,才能中斷迴圈。
所以會產生幾種結果:
1. 假設第一次就猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「True」。
False or True = True,
迴圈條件成立,迴圈繼續,產生bug。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count != 0」此時為「False」。
True or False = True,
迴圈條件成立,迴圈繼續,產生bug。
3. 假設第三次剛好猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count等於0,所以判斷式「count != 0」此時為「False」。
False or False = False
此時才能結束程式。
4. 超過三次(假設第四次)才猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0(此時該是-1),所以判斷式「count != 0」此時為「True」。
False or True = True,
迴圈條件成立,迴圈繼續,產生bug。
============================最終解答程式碼============================
while guess != secret and count != 0:
省版面,下略...
======================================================================
此時結束迴圈的條件是:
1. guess等於secret,所以判斷式「guess != secret」此時為「False」;
2. count等於0,所以判斷式「count != 0」此時為「False」。
True and True = True,才能執行迴圈,
所以會產生幾種結果:
1. 假設三次以內猜對:
guess等於secret,所以判斷式「guess != secret」此時為「False」;
count不等於0,所以判斷式「count == 0」此時為「True」。
False and True = False,
迴圈中止,程式正常結束。
2. 假設第三次還猜錯:
guess不等於secret,所以判斷式「guess != secret」此時為「True」;
count等於0,所以判斷式「count != 0」此時為「False」。
True and False = False,
迴圈中止,程式正常結束。
邏輯釐清花了我好久的時間去思考,
好累....~"~
留言
張貼留言