Бросайте кости, пока не получите 6

#python #loops #while-loop #dice

Вопрос:

Я должен написать код, который будет бросать кости и автоматически повторять его до тех пор, пока он не приведет к 6, а затем остановится. Мой код запускается только один раз и повторяется бесконечно.

 import random min=1 max=6 r=(random.randint(min, max))  while r lt; 6:  print(r)  continue  if r == 6:  print(r)  break```  

Комментарии:

1. Вы вычисляете r один раз, прежде чем войти в свой цикл. Вместо этого вы хотите вычислять r на каждой итерации вашего цикла

Ответ №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  

Комментарии:

1. не называйте переменные, как встроенные функции