Запросить у пользователя число и
- вывести на экран “число положительное”, если число больше нуля,
- “число отрицательное”, если число меньше нуля
- и “это ноль” если ложно и первое и второе условие.
В программировании можно проводить различные проверки, которые позволяют управлять ходом программы. Для этого предусмотрены конструкции вида:
if какое_то_условие:
сделать действие1
допустим мы запросили у пользователя число и хотим проверить его на положительность, делается это так. На русском наш алгоритм выглядел бы так:
запросить y пользователя значение x
преобразовать x в число
если x больше 0 то
напечатай "число положительное"
на python получим такой код:
x = input("Введите X")
x = int(x)
if x > 0:
print("число положительное")
тут важный момент что print(“число положительное”) должен иметь отступ в 4 пробела, то есть чтобы визуально выглядело будто print лежит внутри конструкции if
if-ов может быть сколько угодно, например, если мы хотим проверить число сразу на положительность и на отрицательность. На русском будет так:
запросить y пользователя значение x
преобразовать x в число
если x больше 0 то
напечатай "число положительное"
если x меньше 0 то
напечатай "число отрицательное"
на python вот так:
x = input("Введите X")
x = int(x)
if x > 0:
print("число положительное")
if x < 0:
print("число отрицательное")
Допустим мы хотим сравнить число с несколькими другими числами. Допустим с 5 и 10. И хотим, чтобы
тогда на русском будем действовать как-то так:
запросить y пользователя значение x
преобразовать x в число
если x больше 10 то
напечатай "число больше 10"
если x больше либо равно 5 и x меньше либо равно 10 то
напечатай "число между 5 и 10"
если x меньше 5 то
напечатай "число меньше 5"
на программистском
x = input("Введите X")
x = int(x)
if x > 10:
print("число больше 10")
# ниже используется проверка сразу на два условия,
# которые объединены через оператор and, то есть типа: <условие1> and <условие2>
# в принципе так можно объединить сколько угодно условий <условие1> and <условие2> and <условие3>
if x >= 5 and x <= 10:
print("число между 5 и 10")
if x < 5:
print("число меньше 5")
если присмотреться, то все эти условия взаимоисключающие, то есть нет смысла проверять второй if, если выполнится первый. Поэтому мы можем объединить все эти if в один мега-if, который будет проверять условия до первого выполняющегося, и не будет проверять лишних, выглядеть это будет вот так:
if x > 10:
print("число больше 10")
elif x >= 5 and x <= 10:
print("число между 5 и 10")
elif x < 5:
print("число меньше 5")
то есть мы заменили два последних if на elif, что расшифровывается как else if (с англ. иначе если). На человеческом получится что-то вроде:
если x больше 10 то
напечатай "число больше 10"
иначе если x больше либо равно 5 и x меньше либо равно 10 то
напечатай "число между 5 и 10"
иначе если x < 5 то
напечатай "число меньше 5"
теперь если приглядятся на нашу конструкцию еще внимательнее, то увидим, что последнее условия выполняется всегда, если не выполнились первые два.
Для таких условий в программировании предусмотрена конструкцию else (с англ. иначе).
То есть мы можем переформулировать нашу конструкцию в
если x больше 10 то
напечатай "число больше 10"
иначе если x больше либо равно 5 и x меньше либо равно 10 то
напечатай "число между 5 и 10"
иначе
напечатай "число меньше 5"
на python это получится вот так:
if x > 10:
print("число больше 10")
elif x >= 5 and x <= 10:
print("число между 5 и 10")
else:
print("число меньше 5")
Кстати, если присмотреться к первым двум условиям мы увидим, что если оказалось, что x не больше 10, то есть первое условие не выполнилось, то это гарантирует нам что x <= 10, а это означает что мы можем упростить условие 2, до вида x больше либо равно 5 и получим на русском:
если x больше 10 то
напечатай "число больше 10"
иначе если x больше либо равно 5 то
напечатай "число между 5 и 10"
иначе
напечатай "число меньше 5"
код будет такой:
if x > 10:
print("число больше 10")
elif x >= 5:
print("число между 5 и 10")
else:
print("число меньше 5")
Ну и уточню, что конструкция if/elif/else это не то же самое что три if-а. Если запустить код выше, то получим вполне корректное поведение:
а теперь попробуем заменить elif на if, то есть таким образом преобразовав его в две конструкции if и if/else:
if x > 10:
print("число больше 10")
if x >= 5:
print("число между 5 и 10")
else:
print("число меньше 5")
запускаем и получаем
В принципе, один блок if может находится внутри другого блока if, правда тогда отступы надо увеличивать на 4 пробела соответственно.
Например, мы можем переписать код выше используя только if и else. Для этого переформулируем нашу фразу
если x больше 10 то
напечатай "число больше 10"
иначе
если x больше либо равно 5 и x меньше либо равно 10 то
напечатай "число между 5 и 10"
иначе
напечатай "число меньше 5"
в коде получим
if x > 10:
print("число больше 10")
else
if x >= 5 and x <= 10:
print("число между 5 и 10")
else:
print("число меньше 5")
иногда такое может пригодится
У нас в примере не было равенства. Поэтому просто уточню. Чтобы проверить число на равенство с другим числом надо использовать ДВОЙНОЕ равно ==
if x == 10:
print("Число равно 10")
а если хочется наооборот проверить что число не равняется чему-то можно использовать два варианта, так
if not x == 10:
print("Число не равно 10")
либо так
if x != 10:
print("Число не равно 10")
Теперь попробуйт сделать задание
Запросить у пользователя число и