[英]How do I fix my while-loop and if conditionals in my guessAge(age) in Python?
[英]How do I fix my (supposedly while-loop or if-statement) dice-simulator in Python so it prints the amount of tries its taken before landing on a 6?
所以,我有點被我的編碼任務困住了——我應該用 Python 編寫一個代碼來模擬擲骰子,其中程序隨機化 1-6 之間的數字,直到它“落在”數字上6; 該程序還應該計算它在“降落”到 6 之前“擲骰子”的嘗試次數,並打印出 print("It made", n, "trys to get a 6.") 其中 n = 在落到 6 點之前它擲骰子的嘗試次數。
這是我到目前為止想出的:
import random
dice = random.randint(1,6)
n = 0
while dice == 6:
n = n + 1
print("It took", n, "tries to get a 6.")
break
但是,唉,它只打印出“需要 1 次嘗試才能得到 6”。 在結果窗口中,只要“骰子”沒有落在 6 上,結果窗口中就會顯示空白。我想我的問題是:我如何讓它在落在 6 上之前計算所有嘗試次數,以及隨后打印所述的嘗試次數與語句打印(“它花了”,n,“嘗試獲得 6 的次數。”)?
您需要將break
命令寫入 if 語句。 在您當前的代碼中,它在第一次迭代中中斷。
由於這是一項分配,我不想告訴你一切。 但是那個 while 循環條件不會讓你到達那里。 嘗試編寫一個帶有中斷條件的空白 while 循環,考慮一下。
用於重復一個動作一個未知的次數通常的模式是用一個while True
循環,然后break
時退出條件被滿足循環的進行。
rolls = 0
while True:
die = random.randint(1, 6)
rolls += 1
if die == 6:
break
print("It took", rolls, "tries to get a 6.")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.