Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71

Ошибка в записи интервалов?

28.10.2023, 16:20. Показов 981. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, не могу найти у себя ошибку.

Задача такая -
Вводим с клавиатуры 2 числа. Каждое из этих чисел
должно быть либо меньше 5, либо больше 10. Если условия
выполняются, печатаем "числа подходят", не выполняются - "числа не подходят".
А если подходит только одно число - печатаем "подходит только 1 число".

Своё решение привожу ниже, но оно не работает при вводе верных значений.
Python
1
2
3
4
5
6
7
8
9
10
a = int(input('Введите любое число не лежащее в интервале от 5 до 10 - '))
b = int(input('Введите другое число не лежащее в интервале от 5 до 10 - '))
if (5 <= a <= 10) and (5 <= b <= 10):
    print('Числа', a, 'и', b, 'не удовлетворяют условию.')
elif (5 <= a <= 10) and (5 > b > 10):
    print('Число', a, 'не удовлетворяет условию.')
elif (5 > a > 10) and (5 <= b <= 10):
    print('Число', b, 'не удовлетворяет условию.')
elif (5 > a > 10) and (5 > b > 10):
    print('Числа', a, 'и', b, 'удовлетворяют условию.')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2023, 16:20
Ответы с готовыми решениями:

Объединение интервалов дат в случае пересечения или соприкосновения этих интервалов
Добрый вечер. Не могу решить задачу. Нужно написать запрос, который по интервалам объединит эти интервалы в случае если они...

Определить количество интервалов нулей, интервалов единиц и выбрать минимальное из них
Есть последовательность из N чисел 0 и 1.Интервалом нулей назовём такую её непрерывную подпоследовательность, которая состоит только из...

На прямой задано n числовых интервалов. Определите, образует ли объединение этих интервалов один интервал
На прямой задано n числовых интервалов. Определите, образует ли объединение этих интервалов один интервал.

21
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
28.10.2023, 16:37
Python
1
2
a, b = sorted(map(int, input('a, b->').split()))
print(['числа не подходят', 'подходит только одно число', 'числа подходят'][(a < 5) + (b > 10)])
0
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 16:47  [ТС]
idealist, спасибо.
Но вопрос не в том, как решить задачу - а в том, где у меня ошибка.
Условие (5 <= a <= 10) and (5 <= b <= 10) срабатывает.
Но уже условие (5 <= a <= 10) and (5 > b > 10) уже не срабатывает.
Может быть я границы (5 > b > 10) не правильно записываю?
0
10 / 9 / 2
Регистрация: 27.10.2023
Сообщений: 73
28.10.2023, 17:26
Да, в вашем коде есть ошибка в условии (5 <= a <= 10) and (5 > b > 10). Условие (5 > b > 10) фактически всегда будет ложным, потому что нельзя одновременно иметь число, которое больше или равно 5 и меньше или равно 10. Это недопустимое условие.

Вместо этого вы должны проверить, что второе число (b) не находится в интервале от 5 до 10
1
4 / 6 / 1
Регистрация: 16.04.2022
Сообщений: 139
28.10.2023, 17:28
Python
1
2
3
4
5
6
7
8
9
10
11
a = int(input('Введите любое число не лежащее в интервале от 5 до 10 - '))
b = int(input('Введите другое число не лежащее в интервале от 5 до 10 - '))
 
if (5 <= a <= 10) and (5 <= b <= 10):
    print('Числа', a, 'и', b, 'не удовлетворяют условию.')
elif (5 <= a <= 10) and (b < 5 or b > 10):
    print('Число', a, 'не удовлетворяет условию.')
elif (a < 5 or a > 10) and (5 <= b <= 10):
    print('Число', b, 'не удовлетворяет условию.')
else:
    print('Числа подходят')
1
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
28.10.2023, 17:49
Цитата Сообщение от sVs_TOP Посмотреть сообщение
(5 > b > 10)
В принципе нереализуемое условие, ни одно b не может быть меньше 5 и больше 10
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
28.10.2023, 17:54
Тебе легче было бы поучить логические операции
Миниатюры
Ошибка в записи интервалов?  
0
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 18:04  [ТС]
NebraskKrasnod, я рассматривал такой вариант, но мне хотелось условия (b < 5 or b > 10) записать одним условием - типа (5 > b > 10).
Разве (b < 5 or b > 10) не тождественно (5 > b > 10)?

Или я банально не помню школьную математику?
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
28.10.2023, 18:09
Еще одна (логическая) ошибка в твоем коде - ты идешь с хвоста наперед. Вместо того, чтобы проверить сначала оба числа на соответствие условиям, ты их проверяешь на несоответствие. Лучше поменяй порядок:
Python
1
2
3
4
5
6
7
8
9
10
11
a = int(input('Введите любое число не лежащее в интервале от 5 до 10 - '))
b = int(input('Введите другое число не лежащее в интервале от 5 до 10 - '))
 
if (a < 5 or a > 10) and (b < 5 or b > 10):
    print('Числа', a, 'и', b, 'удовлетворяют условию.')
elif a < 5 or a > 10:
    print('Число', a, 'не удовлетворяет условию.')
elif b < 5 or b > 10:
    print('Число', b, 'не удовлетворяет условию.')
else:
    print('Числа', a, 'и', b, 'не удовлетворяют условию.')
Добавлено через 2 минуты
Цитата Сообщение от sVs_TOP Посмотреть сообщение
Разве (b < 5 or b > 10) не тождественно (5 > b > 10)?
Нет. Попробуй прочитать словами написанное математикой:
(b < 5 or b > 10) === "Если Б меньше пяти ИЛИ Б больше десяти"
(5 > b > 10) === "Если пять больше чем Б И 10 меньше чем Б" (а другими словами, если Б меньше пяти И больше десяти)
1
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
28.10.2023, 18:09
Python
1
2
3
4
num_interval = [i for i in range(5, 11)]
a = int(input()) in num_interval
b = int(input()) in num_interval
print(['числа не подходят', 'подходит только одно число', 'числа подходят'][a + b])
1
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 18:21  [ТС]
Joey.
Если я правильно помню, то запись (5 > b > 10) означает, что b должно быть меньше 5-ти или больше 10-ти.

Добавлено через 2 минуты
Цитата Сообщение от Joey Посмотреть сообщение
Еще одна (логическая) ошибка в твоем коде - ты идешь с хвоста наперед. Вместо того, чтобы проверить сначала оба числа на соответствие условиям, ты их проверяешь на несоответствие.
Русский человек любит гланды через жопу вырезать.
1
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
28.10.2023, 18:28
Цитата Сообщение от sVs_TOP Посмотреть сообщение
Если я правильно помню
Неправильно помните, здесь не операция ИЛИ, а операция И
1
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 18:49  [ТС]
Joey.
Честно говоря, вы меня не очень убедили.
Боюсь, что мы сейчас играемся не с правилами математики, а с правилами русского языка.

Господа, я прошу подсказать, как можно условия (b < 5 or b > 10) записать одним условием?
Можно ли это вообще?
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,316
28.10.2023, 19:23
Цитата Сообщение от sVs_TOP Посмотреть сообщение
b < 5 or b > 10
Цитата Сообщение от Joey Посмотреть сообщение
if b < 5 or b > 10
не? это называется глаз замылился....
1
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 19:31  [ТС]
Господа.
Может я и дурак, но вот как я выкрутился - условие (5 > b > 10), я записал как - not (5 <= b <= 10).
И вот что у меня получилось -
Python
1
2
3
4
5
6
7
8
9
10
a = int(input('Введите любое число не лежащее в интервале от 5 до 10 - '))
b = int(input('Введите другое число не лежащее в интервале от 5 до 10 - '))
if (5 <= a <= 10) and (5 <= b <= 10):
    print('Числа', a, 'и', b, 'не удовлетворяют условию.')
elif (5 <= a <= 10) and not (5 <= b <= 10):
    print('Число', a, 'не удовлетворяет условию.')
elif not (5 <= a <= 10) and (5 <= b <= 10):
    print('Число', b, 'не удовлетворяет условию.')
elif not (5 <= a <= 10) and not (5 <= b <= 10):
    print('Числа', a, 'и', b, 'удовлетворяют условию.')
Вроде работает!

Всё-таки гланды через задницу интереснее вырезать.
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,316
28.10.2023, 19:34
sVs_TOP, через года два посмотрите на своё творение и..........ужаснётесь
потому как краткость сестра таланта, а тут не так-не читабельно
1
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
28.10.2023, 19:35
Цитата Сообщение от sVs_TOP Посмотреть сообщение
как можно условия (b < 5 or b > 10) записать одним условием?
Python
1
if not (5 <= b <= 10):
1
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,316
28.10.2023, 19:37
sVs_TOP,
Цитата Сообщение от sVs_TOP Посмотреть сообщение
Число', a, 'не удовлетворяет условию
и
Цитата Сообщение от sVs_TOP Посмотреть сообщение
Число', b, 'не удовлетворяет условию
чтобы эти умозаключения сделать зачем нужно трогать НЕ эти числа?
1
2 / 2 / 0
Регистрация: 29.12.2022
Сообщений: 71
28.10.2023, 19:47  [ТС]
Господа, спасибо большое, кто откликнулся, но задачу эту я решал таким образом ради спортивного интереса.
Ну зачем прыгают через планку?
Да только ради того, чтобы доказать, что это возможно (ну и получить удовольствие от этого.)
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
28.10.2023, 20:17
Моя предыдущая программа неправильная. Вот так правильнее:
Python
1
2
3
a, b = map(int, input('a, b->').split())
is_good = lambda x: x < 5 or x > 10
print(['числа не подходят', 'подходит только одно число', 'числа подходят'][is_good(a) + is_good(b)])
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2023, 20:17
Помогаю со студенческими работами здесь

Отличие доверительных интервалов от прогнозных интервалов
Всем доброго вермени года! Подскажите в чем разница между доверительными интервалами и прогнозными интервалами? Зачем нужны...

Ошибка автоматической настройки интервалов из-за недопустимого значения в точке
System.InvalidOperationException: &quot;Объект Axis - ошибка автоматической настройки интервалов из-за недопустимого значения в точке либо...

Пересечение интервалов дат в Excel. Вывод дат пересечения интервалов
Добрый день. Помогите пожалуйста. Мне надо найти совпадения в периодах работы одного и того же человека на разных предприятиях. Если он...

Chart. InvalidOperationException - "Объект Axis - ошибка автоматической настройки интервалов"
Здравствуйте, возникла такая проблема с компонентом Chart, выдаёт ошибку: Вот код программы private void Iteraciya(int X0,...

Ошибка записи *.xmcd (при успешной записи того-же файла в *.mcd)
День добрый, уважаемые. Ситуация следующая: маткад 15 М020, имеется файл (в приложении), который при попытке записи в формат xmcd выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru