#python #python-3.x
Вопрос:
Я хотел создать код, который дал бы мне все ответы на этот вопрос
Мой код:
import random
hen = 3
rooster = 5
boolean = True
lst = []
while boolean == True:
dicti = {}
qian = 100
lst = []
i = random.randint(1,12)
i2 = random.randint(4,25)
i3 = random.choice(list(range(3,85,3)))
qian -= i3/3
qian -= i2*hen
qian -= i*rooster
if qian == 0:
if 15*i 9*i2 i3 == 300:
dicti["chick"] = i3
dicti["hen"] = i2
dicti["rooster"] = i
lst = [dicti]
if len(lst) == 4:
boolean = False
У меня есть диапазоны, настроенные на самые высокие числа в разделе ответов по ссылке, которую я предоставил,
но, похоже, это бесконечный цикл, есть идеи, где я ошибся?
Я рад любому ответу.
СПАСИБО ВАМ! 🙂
Комментарии:
1. Возможно, вам следует вывести значение
qian
в своем цикле и спросить себя, что потребуется, чтобы оно стало равным нулю.2. Очень маловероятно, что
qian
когда-либо станет нулевым.
Ответ №1:
цикл никогда не завершится, потому что конечное условие недоступно из-за того, что список пуст в начале цикла. просто отмените строку, в которой список пуст внутри цикла, и он должен работать:
import random
hen = 3
rooster = 5
boolean = True
lst = []
while boolean == True:
dicti = {}
qian = 100
i = random.randint(1,12)
i2 = random.randint(4,25)
i3 = random.choice(list(range(3,85,3)))
qian -= i3/3
qian -= i2*hen
qian -= i*rooster
if qian == 0:
if 15*i 9*i2 i3 == 300:
dicti["chick"] = i3
dicti["hen"] = i2
dicti["rooster"] = i
lst = [dicti]
if len(lst) == 4:
boolean = False