Ниже у меня дано задание, после него будет мой код с вопросом который меня беспокоит, и на который
сможет ответить только истинный ценитель Python(net:)) Назовем число красивым, если оно является четырехзначным и делится нацело на 7 или на 17. Напишите программу, определяющую, является ли введённое число красивым. Программа должна вывести «YES», если число является красивым, или «NO» в противном случае. Формат входных данных На вход программе подаётся натуральное число. Формат выходных данных Программа должна вывести текст в соответствии с условием задачи. Тестовые данные Номер теста Входные данные Выходные данные 1 1043 YES 2 1045 NO 3 2751 YES 4 2753 NO 5 3262 YES 6 3263 NO 7 3264 YES 8 9359 YES 9 9366 YES 10 9362 NO 11 9996 YES 12 9997 NO 13 9999 NO 14 987 NO 15 994 NO 16 7 NO 17 14 NO 18 17 NO 19 15 NO 20 18 NO 21 1057672 NO 22 594405 NO 23 83521 NO Мой код который верный x = int(input()) num = 1000 <= x <= 9999 num2 = x % 7 == 0 num3 = x % 17 == 0 if (num and num2) or (num and num3): print('YES') else: print('NO') И мой код который не верный, и в нем беспокоит меня всего один вопрос: Почему у меня тут не проходит ответ, когда я ставлю num вместо x? x = int(input()) num = 1000 <= x <= 9999 num2 = num % 7 == 0 num3 = num % 17 == 0 if (num and num2) or (num and num3): print('YES') else: print('NO')Ответы на вопрос
Проблема в вашем коде в строках:
num2 = num % 7 == 0
num3 = num % 17 == 0
Здесь вы пытаетесь выполнить операцию получения остатка от деления на переменную num, которая на самом деле является булевой переменной, потому что в предыдущей строке у вас было определение num = 1000 <= x <= 9999.
Ваша ошибка может быть исправлена, если заменить num на x в строках, где вы используете остаток от деления оператором %:
x = int(input())
num = 1000 <= x <= 9999
num2 = x % 7 == 0
num3 = x % 17 == 0
if (num and num2) or (num and num3):
print('YES')
else:
print('NO')
Таким образом, ваш код будет работать правильно и выводить ожидаемые результаты.
Проблема в вашем коде возникает из-за неправильного использования переменных. Вместо того, чтобы использовать переменную "num", вы случайно используете переменную "x".
В вашем коде вы объявляете переменную "x" и присваиваете ей введенное пользователем число. Затем вы объявляете переменную "num" и проверяете, находится ли "x" в диапазоне от 1000 до 9999. После этого вы объявляете переменные "num2" и "num3" и проверяете, делится ли "num" на 7 или 17 без остатка.
Однако, когда вы проверяете условие в if-выражении, вы снова используете переменную "x" вместо "num". Поэтому условие не срабатывает и выводится "NO" для любого введенного числа.
Чтобы исправить это, вам нужно заменить все вхождения "x" на "num" в вашем коде. Правильный код должен выглядеть так:
```python num = int(input()) num2 = num % 7 == 0 num3 = num % 17 == 0 if (1000 <= num <= 9999) and (num2 or num3): print('YES') else: print('NO') ```
Теперь ваш код должен правильно определять, является ли введенное число красивым или нет.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
