Ниже у меня дано задание, после него будет мой код с вопросом который меня беспокоит, и на который сможет ответить только истинный ценитель 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')
Ответы
Ответ дал:
1
Проблема в вашем коде в строках:
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')
Таким образом, ваш код будет работать правильно и выводить ожидаемые результаты.
Вас заинтересует
2 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
1 год назад
To punch -
To count -
To produce -
To generate -
To invent -
To rely -
To select -
To program -