#python-3.x #list #for-loop #math #while-loop
#python-3.x #Список #для цикла #математика #цикл while
Вопрос:
Программа работает отлично, просто, если я решу использовать цикл while, он ничего не даст мне без ошибок, но если я добавлю к нему хэштег, все будет работать нормально. Причина, по которой я хочу, чтобы он не был помечен хэштегом, заключается в том, что он будет возвращать числа в списке, что делает его проблемой в будущем, по какой-то причине все нарушает даже список факторов. Мне нужна помощь, чтобы выяснить, как это исправить.
Factor_list = []
Solved_Diamond_List =[]
z = x2 * num
No_Answer = True
if z > 0:
for i in range(-z, 0):
if z % i == 0:
Factor_list.append(i)
for i in range(1, z 1):
if z % i == 0:
Factor_list.append(i)
if z < 0:
for i in range(z, 0):
if z % i == 0:
Factor_list.append(i)
for i in range(1, -z 1):
if z % i == 0:
Factor_list.append(i)
for i in Factor_list:
for j in Factor_list:
while No_Answer == True:
if (i j) == x:
if (i * j) == z:
Solved_Diamond_List.append(i)
Solved_Diamond_List.append(j)
No_Answer = False```
Ответ №1:
Ваш while
цикл не завершается, если только ответ не будет сгенерирован в конкретной комбинации i
, j
с которой вы начинаете. Может быть, переписать на:
for i in Factor_list:
for j in Factor_list:
if No_Answer:
if (i j) == x and (i * j) == z:
Solved_Diamond_List.append(i)
Solved_Diamond_List.append(j)
No_Answer = False
Это не оптимально (оно будет выполняться через все комбинации i
и j
даже после нахождения ответа). Или, может быть, вам нужен список всех ответов?
for i in Factor_list:
for j in Factor_list:
if (i j) == x and (i * j) == z:
Solved_Diamond_List.append((i, j))