昨天做一個猜數字的小遊戲,因為不太瞭解 continue、break、while、for 這幾個關鍵字,因此無法順利執行「是否要參與比賽」的這段程式碼。
還好,IT人溫暖多,各路邦友來幫忙,讓我比較懂得其中的差異)跪謝各大神們
我覺得程式碼也像媽媽在罵人之類的,首先一定會先罵重點,然後再細項逐條開罵。如果副線越來越多,所以就更要先想好怎麼統整成開頭的重點,後面才能更有條理的逐條大罵,也不會脫離主線。
首先,我把 while 拿掉,中間改成 if/else ,最近真的好常和 if/else 合作喔!
希望可以不要太常出現,想學點別的 哈哈哈
改了以後,我改成下面這段程式碼
import random
print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')
GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
exit()
elif (GuessGame.lower() == "yes"):
print("遊戲正式開始!")
else:
exit()
rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
i += 1
guess = int(input("你猜數字多少:"))
if guess == num:
print("恭喜,你猜對了!")
elif guess < num:
print("再大一點!!")
else:
print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局!!!")
結果成功運行!!!!!
下圖就是正在研究的我...
不過今天應該會比較快紀錄完)努力中!!!
其實,到了剛剛那裡就可以結束了。
我剛剛那個
其實是因為我又很自找麻煩...
我想要在下面這行程式碼的後面再加上兩個動作。
print("你總共猜了%d" %i + "次"",快點再來一局!!!")
1.第一個動作就是,詢問「是否要重新開始?」我想讓玩家可以選擇是否要重新開始新的一局。
2.如果「要」,就回到第一個動作也就是下方這行程式碼這裡,如果「不要」就停止這個遊戲。
print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')
就這樣我在最後新增一小段程式碼,完整程式碼如下。
結果可想而知,還是很悲劇。
import random
print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')
GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
exit()
elif (GuessGame.lower() == "yes"):
print("遊戲正式開始!")
else:
exit()
rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
i += 1
guess = int(input("你猜數字多少:"))
if guess == num:
print("恭喜,你猜對了!")
elif guess < num:
print("再大一點!!")
else:
print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局!!!")
print('還要再玩新的一局嗎?')
GuessGame = input('要?不要?(YES/NO)')
if (GuessGame.lower() == "yes"):
print("新的一局即將開始!")
def start(GuessGame):
GuessGame.lower() == "yes"
return start
else:
exit()
我覺得應該 return 的關係吧?
去谷歌了一下,return 通常都是跟 def 搭配
就這樣自己試打了一段,結果無法運作...
明天又要繼續爬教程了 囧
不過今天整體的學習狀況自己還蠻滿意的。
開心收工!!
大部分程式語言的return
是用在「有人呼叫這個程式」的時候...
這個程式「要給那個人答案」才會用return
EX. 如果有一個副程式叫做 i_need_rand
,呼叫後就可以得到一個隨機的數字
x = i_need_rand()
則x
此時就有一個隨機數字
那麼i_need_rand
裡面就可以這樣寫
def i_need_rand():
return random.randint(0, 1000)
之類的寫法,這時候x
就可以因為這個return
收到資料囉~
...
...
...
...
...
...
SO 如果你要讓程式整個重新可以跑一遍,簡單點的方法有2個
while
把整個包住 (相信你懂得 ?while(????):
# 你整個程式碼
# 你整個程式碼
# 你整個程式碼
print('game over')
def my_game(????): # <- ????看你有沒有輸入參數,沒有就空的也可以
# 你遊戲程式碼
# 你遊戲程式碼
# 你遊戲程式碼
return start
go = True # <- 這邊是先讓go可以通過第一次while
while(go == True):
go = my_game(????) # <- 這邊的go 等於回傳(return)的start
之類的(吧? 希望有幫到你XDD