Не работает последнее условие в моем коде.

ITема

Новичок
Пользователь
Май 31, 2021
14
0
1
Я начинающий программист, есть вопрос.

Как понятно из заголовка, не работает последнее условие в коде. По идее, если ввести не число больше "0", не число меньше "0" и не значение, которое равно "Не число", то компьютер должен вывести: "Вы читаете условие?"

name = input("Введите значение: ")
if name == "Не число":
print("Вы нашли секрет!")
elif int(name) > 0:
print("Вы ввели число больше 0")
elif int(name) < 0:
print("Вы ввели число меньше 0")
else:
print("Вы читаете условие?")

Версия Python 3.8
ОС - Windows 7

P. S. Если не трудно скажите, зачем тут указывать операционку? Это как-то влияет на работу кода?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 669
477
83
если ввести строку в name, которая не равна "Не число", ваш код выдаст ошибку в elif потому что строку не сможет привести к int...
else выполниться только в том случае, если ввести 0...

P. S. Если не трудно скажите, зачем тут указывать операционку? Это как-то влияет на работу кода?
в вашем коде нет, не влияет, но если использовать, например, API системы, то влияет...
 
  • Мне нравится
Реакции: ITема

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 669
477
83
в питоне можно все, как и в любом другом языке общего назначения...
вот пример
Python:
name = input("Введите значение: ")
if name == "Не число":
    print("Вы нашли секрет!")
# проверяем, состоит ли сторока только из цифр, lstrip("-") для учета отрицательных чисел
elif name.lstrip("-").isdigit():
    if int(name) > 0:
        print("Вы ввели число больше 0")
    elif int(name) < 0:
        print("Вы ввели число меньше 0")
    elif int(name) == 0:
        print("Вы ввели число 0")
else:
    print("Вы читаете условие?")

можно еще сделать через try/except, но эта конструкция накладывает лишние расходы, но и в тоже время это более питонитский подход...
Python:
name = input("Введите значение: ")
try:
    if name == "Не число":
        print("Вы нашли секрет!")
    elif int(name) > 0:
        print("Вы ввели число больше 0")
    elif int(name) < 0:
        print("Вы ввели число меньше 0")
    elif int(name) == 0:
        print("Вы ввели число 0")
except ValueError:
    print("Вы читаете условие?")
 
Последнее редактирование:
  • Мне нравится
Реакции: ITема

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 669
477
83
советую все таки книгу почитать...
 
  • Мне нравится
Реакции: ITема

ITема

Новичок
Пользователь
Май 31, 2021
14
0
1
Здравствуйте! Спасибо Вам огромное за Ваш ответ!

Но, если не будет трудно, не смогли бы вы объяснить поподробнее, можно ли сделать так, чтобы это получилось. То есть если будет введено просто любое значение в строке (например, "Кот", или "Волчок"), или значение в типе десятичной дроби (например, "56.7" или "561.34"), то система будет переходить к условию else и писать "Вы читаете условие?". Или в Python такое вообще нельзя сделать?
 

ITема

Новичок
Пользователь
Май 31, 2021
14
0
1
А, я вас понял. Спасибо огромное! Видите ли, дело в том, что я самоучка и учусь программированию у одного ютубера по-имени Гоша Дударь. Сейчас на седьмом выпуске его самоучителя, который называется "Списки". Как не сложно догадаться из названия, речь там идет о списках, а смотря на ваши команды, такие как какое-то ValueError (Без понятия. что оно делает. По крайней мере надеюсь, что пока без понятия) я понял, что до такого еще попросту не дошел. А то уже расстроился, что что-то упустил.

Так что еще раз спасибо Вам огромное, вы, видимо, программист уже опытный.
Всего хорошего!
 

ITема

Новичок
Пользователь
Май 31, 2021
14
0
1
Не подскажите какую?
 

Форум IT Специалистов