Почему цикл не обрывается?
Когда комбинация становиться [1,2,3] , почему цикл не прерывается?
Код:
import random
class Listing:
def __init__(self, lis, first_num, last_num):
self.lis = lis
self.last_num = last_num
self.first_num = first_num
def run(self):
while True:
lis = [i for i in range(self.first_num, self.last_num + 1)]
random.shuffle(lis)
print(lis)
lis = [self.first_num, self.last_num]
if lis == [range(self.first_num, self.last_num)]:
break
else:
continue
list_1 = Listing([], 1, 3)
list_1.run()
Ответы (1 шт):
Автор решения: Edward Grachev
→ Ссылка
Потому что твое условие lis == [range(self.first_num, self.last_num)] никогда не выполняется.
Когда комбинация становиться [1,2,3] , почему цикл не прерывается?
в lis у тебя [1,2,3] потом допустим [1,2], тогда как [range(self.first_num, self.last_num)] у тебя = [range(1,3)], вероятнее всего тебе надо сделать так [x for x in range(self.first_num, self.last_num) + 1] но к чему лишние вычисления если можно сделать так:
import random
class Listing:
def __init__(self, lis, first_num, last_num):
self.lis = lis
self.last_num = last_num
self.first_num = first_num
def run(self):
a = [1,3]
while True:
lis = [i for i in range(self.first_num, self.last_num + 1)]
random.shuffle(lis)
lis = [self.first_num, self.last_num]
if lis == a:
print("Остановка цикла")
break
else:
continue
list_1 = Listing([], 1, 3)
list_1.run()
Зачем тебе тут range?
