Уроки модуля (3/4)
Условные обозначения: if, elif, else
Условия позволяют запускать другой код в зависимости от
значение логического выражения. В Python они записываются с помощью if, elif.
(сокращение от «иначе, если») и else.
Основная форма
eta = 18
if eta >= 18:
messaggio = "maggiorenne"
else:
messaggio = "minorenne"Уведомление:
- после условия всегда ставится двоеточие
:; - блок «внутри» if обозначается отступом (4 пробела);
- скобки вокруг условия не нужны (хотя они разрешены).
Больше ветвей с elif
voto = 7
if voto >= 9:
giudizio = "ottimo"
elif voto >= 7:
giudizio = "buono"
elif voto >= 6:
giudizio = "sufficiente"
else:
giudizio = "insufficiente"Ветви elif оцениваются в том порядке, в котором вы их записываете, и останавливаются на
первое, что окажется правдой.
Условное выражение (троичное)
Для простых случаев можно написать всё в одной строке:
eta = 20
messaggio = "maggiorenne" if eta >= 18 else "minorenne"На английском языке это читается естественно: "maggiorenne if eta >= 18 else минорэнн".
«Истинные»/«ложные» ценности
Условие не обязательно должно быть сравнением: любое значение может
использоваться как условие. Они считаются ложными: False, None, 0,
"", [], {}. Все остальное правда.
nome = "Ada"
if nome:
saluto = f"Ciao {nome}!"
else:
saluto = "Ciao sconosciuto!"Условные выражения (тройной оператор)
Python поддерживает компактную однострочную конструкцию if-else, которая действует как тернарный оператор, встречающийся в других языках:
result = "Even" if n % 2 == 0 else "Odd"Это сохраняет ваш код кратким, когда вам просто нужно присвоить значение на основе условия.
Попробуйте сами
Учитывая `number = 15`, присвойте `sign` строку "positivo", если число > 0, "ноль", если оно равно 0, и "negativo" в противном случае. Оцените «знак».
Показать подсказку
Три ветки: > 0, == 0, иначе.
Решение доступно после 3 попыток
Обзор упражнения
Учитывая `age = 20`, присвойте `category` строку "maggiorenne" или "minorenne", используя троичное выражение (if/else в одной строке).
Показать подсказку
Синтаксис: value_if_true, если условие, иначе value_if_false.
Решение доступно после 3 попыток
Дополнительная задача
Write a conditional structure that checks if the variable `x` (initialized to `-5`) is greater than 0, less than 0, or equal to 0. Assign the string `'positive'`, `'negative'`, or `'zero'` to `sign` accordingly. Finally, evaluate `sign`.
Показать подсказку
Используйте if x > 0:, elif x < 0: и else: для обработки трех случаев.
Решение доступно после 3 попыток