Вопрос задан 22.11.2023 в 19:15. Предмет Информатика. Спрашивает Бойко Ксения.

Ниже у меня дано задание, после него будет мой код с вопросом который меня беспокоит, и на который

сможет ответить только истинный ценитель 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')
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Минаева Лиза.

Проблема в вашем коде в строках:

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')

Таким образом, ваш код будет работать правильно и выводить ожидаемые результаты.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Проблема в вашем коде возникает из-за неправильного использования переменных. Вместо того, чтобы использовать переменную "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') ```

Теперь ваш код должен правильно определять, является ли введенное число красивым или нет.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос