![](/img/trans.png)
[英]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.