繁体   English   中英

我如何在 Python 中修复我的(据说是 while 循环或 if 语句)骰子模拟器,以便它在登陆 6 之前打印其尝试次数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM