НАПИШИТЕ ПРОГРАММУ НА ЯЗЫКУ ПАЙТОН.
Даны натуральные числа от 35 до 87. Выведите на консоль те из них, которые при делении на 7 дают остаток 1, 2 и 5. Найдите ошибку в данном фрагменте программы:
for i in range (35, 88):
if ( i % 7 == 1) & ( i % 7 == 2) & ( i % 7 == 5):
print(i)
!!! Дам 40 баллов, буду очень благодарна за скорую помощь !!!
Answers & Comments
Ответ:
# Ошибка в знаке & - это битовое И, а надо использовать ИЛИ (битовый знак у него "|"). Но правильно будет использовать бинарный оператор или (or). В python есть ключевые слова or (или) и and (и).
# Правильный вариант программы будет (скобки здесь не обязательны, приоритеты у операций всё равно правильные):
for i in range (35, 88):
if i%7 == 1 or i%7 == 2 or i%7 == 5:
print(i)
# Можно также воспользоваться удобным функционалом языка, и написать это красивее и эффективнее:
for i in range(35, 88):
if i%7 in (1, 2, 5): # То бишь, если остаток 1, 3 или 5.
print(i)