Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему программа неправильно сравнивает числа?

Сурикат Профи (909), закрыт 4 года назад
Вроде бы, всё просто:
a = input("Введите a")
b = input("Введите b")
if a>b:
print ("a больше b")
elif b>a:
print ("b больше а")
else:
print ("a и b равны")
Но, тем не менее:

Лучший ответ
Фредерика Бернкастель Мудрец (10651) 4 года назад
Наверное, дело в том что input возвращает строку, а сравнивать надо числа.
Поменяйте:
input("Введите a")
на
int(jnput("Введите a"))
СурикатПрофи (909) 4 года назад
Спасибо) Признаю ответ лучшим)
Фредерика Бернкастель Мудрец (10651) Ого, наконец-то кто-то кто признаёт ответы лучшими после того как им ответили. Спасибо)
Остальные ответы
Полосатый жираф Алик Искусственный Интеллект (313002) 4 года назад
Для идиотов. Input считывает ТЕКСТ, а не числа!
франциск 1Просветленный (24109) 4 года назад
Один товарищ из https://otvet.mail.ru/question/214770991
утверждает, что input() содержит в себе eval(). Если ввести число, то оно автоматически преобразуется к числовому типу.
В комментариях к ответу на аналогичный вопрос я попросил привести пример срабатывания eval в input - пример я так и не получил.
Сергей Бизон Искусственный Интеллект (493913) 4 года назад
Потому, что input() читает строку, а не число
А цифра "8" из 80 по любому больше "1" из 100
Введи 10000 и 80 - получишь, что а < b
франциск 1Просветленный (24109) 4 года назад
как вы относитесь к тому, что Оказывается input() содержит в себе eval(). В этом вся подлость! Если ввести число, то оно автоматически преобразуется к числовому типу.
?
это цитата из https://otvet.mail.ru/question/214770991
нет в input'е eval'а. может это было в ранних версиях питона. сейчас по дефолту input всегда возвращает строку.
Похожие вопросы