【问题标题】:Roll the dice until you get 6掷骰子直到得到 6
【发布时间】:2021-12-11 22:12:51
【问题描述】:

我应该编写将掷骰子并自动循环的代码,直到结果为 6,然后停止。我的代码只滚动一次并无休止地重复。

import random
min=1
max=6
r=(random.randint(min, max))

while r < 6:
     print(r)
     continue
     if r == 6:
          print(r)
          break```

【问题讨论】:

  • 您在进入循环之前计算一次r。相反,您想在循环的每次迭代中计算 r

标签: python loops while-loop dice


【解决方案1】:

你必须再次掷骰子(也就是在循环内):

import random

mi, ma = 1, 6  # do not shadow built-ins `min` and `max`

while True:
    r = random.randint(mi, ma)
    print(r)
    if r == 6:
        break

或者使用赋值表达式(使用海象运算符):

while (r := random.randint(mi, ma)) != 6:
    print(r)
# print(r)  # if you need to see the final 6

【讨论】:

    【解决方案2】:

    您需要在每次迭代时生成随机数,如下所示:

    import random
    min_=1
    max_=6
    
    while True:
         r = random.randint(min_, max_)
         print(r)
         if r == 6:
              print(r)
              break
    

    【讨论】:

    • 不要像内置函数那样命名变量
    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 2015-04-30
    • 2015-06-18
    • 2021-04-04
    • 2021-03-02
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多