#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. не называйте переменные, как встроенные функции