Предмет: Информатика,
автор: nikolmakisheva
НАПИШИТЕ ПРОГРАММУ НА ЯЗЫКУ ПАЙТОН.
Даны натуральные числа от 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 баллов, буду очень благодарна за скорую помощь !!!
valgrisa:
if ( i % 7 == 1) or ( i % 7 == 2) or ( i % 7 == 5):
либо выводит числа которые дают в остатке 1 или 2 или 5
либо ничего
но даже если добавить отступы, то программа ничего не выведет, т.к. невозможно одновременно получить 3 разных остатка от деления одного числа на другое число
(если 35разделить на 7, то остаток будет 0 всегда)
Ответы
Автор ответа:
4
Ответ:
# Ошибка в знаке & - это битовое И, а надо использовать ИЛИ (битовый знак у него "|"). Но правильно будет использовать бинарный оператор или (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)
Похожие вопросы
Предмет: Русский язык,
автор: верон230306
Предмет: Английский язык,
автор: VikiShowSchool
Предмет: Английский язык,
автор: dmitriewamaria
Предмет: Биология,
автор: Killer07111