簡體   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