Цикл с условиями
Необходимо написать цикл, который выполняется до 241 включая, где окончание итерации проходит с увеличением переменной X на 3.
В цикле условие:
Если X кратно 5 и нечетное, то выводить на экран "дай пятюню с правой!"
если X кратно 5 и четное, то выводить на экран "дай пятюню с левой!"
Иначе, Если X не кратно 5 и нечетное, то выводить "до пятюни правой не хватает (разница чисел)
Если X не кратно 5 и четное, то выводить "до пятюню девой не хватает (разница чисел)
Иначе вывести "что-то пошло не так"
Этот код решает задачу, но останавливается не доходя до 241. Как можно его исправить?
num = range(1, 242, 3)
r = [x for x in num if x % 5 == 0 and x % 2 != 0]
l = [x for x in num if x % 5 == 0 and x % 2 == 0]
nr = [x for x in num if x % 5 != 0 and x % 2 != 0]
nl = [x for x in num if x % 5 != 0 and x % 2 == 0]
for x in range(1, 242, 3):
if x in r:
print('дай пятюню с правой!', x)
elif x in l:
print('дай пятюню с левой!', x)
elif x in nr:
dif_nr = [i - x for i in r]
print('до пятюни правой не хватает', min(el for el in dif_nr if el > 0))
elif x in nl:
dif_nl = [i - x for i in l]
print('до пятюни левой не хватает', min(el for el in dif_nl if el > 0))
else:
print('что-то пошлo не так')
Спасибо!
Ответы (1 шт):
Ну, например так:
dif_nr = [i - x for i in r if i-x > 0]
if dif_nr:
print(x,'до пятюни правой не хватает', min(dif_nr))
И для "левой" по аналогии.
А то в конце он не может предсказать сколько остаётся до следующей "пятюни", т.к. список получается пустым. На что и выскакивает ошибка:
print('до пятюни левой не хватает', min(el for el in dif_nl if el > 0))
ValueError: min() arg is an empty sequence