Lecciones del módulo (3/4)
Condicionales: if, elif, else
Los condicionales te permiten ejecutar diferentes bloques de código según el
valor de una expresión booleana. En Python se escriben con if, elif
(abreviatura de "else if") y else.
La forma básica
eta = 18
if eta >= 18:
messaggio = "maggiorenne"
else:
messaggio = "minorenne"Nota:
- después de la condición siempre hay dos puntos
:; - el bloque "dentro" del if se identifica por la indentación (4 espacios);
- no necesitas paréntesis alrededor de la condición (aunque están permitidos).
Más ramas con elif
voto = 7
if voto >= 9:
giudizio = "ottimo"
elif voto >= 7:
giudizio = "buono"
elif voto >= 6:
giudizio = "sufficiente"
else:
giudizio = "insufficiente"Las ramas elif se evalúan en el orden en que se escriben y se detienen en
la primera que resulta ser verdadera.
Expresión condicional (ternaria)
Para casos simples puedes escribir todo en una línea:
eta = 20
messaggio = "maggiorenne" if eta >= 18 else "minorenne"Se lee de forma natural en inglés: "maggiorenne if eta >= 18 else minorenne".
Valores "Truthy" / "falsy"
Una condición no tiene que ser una comparación: cualquier valor puede
usarse como condición. Se consideran falsos: False, None, 0,
"", [], {}. Todo lo demás es verdadero.
nome = "Ada"
if nome:
saluto = f"Ciao {nome}!"
else:
saluto = "Ciao sconosciuto!"Expresiones condicionales (operador ternario)
Python admite un constructor if-else compacto de una sola línea, que actúa como el operador ternario que se encuentra en otros lenguajes:
result = "Even" if n % 2 == 0 else "Odd"Esto mantiene tu código conciso cuando simplemente necesitas asignar un valor basado en una condición.
Pruébalo tú
Dado `number = 15`, asigna a `sign` la cadena 'positivo' si el número es > 0, 'zero' si es 0, 'negativo' en caso contrario. Evalúa `sign`.
Mostrar pista
Tres ramas: > 0, == 0, else.
Solución disponible después de 3 intentos
Ejercicio de repaso
Dado `age = 20`, asigna a `category` la cadena 'maggiorenne' o 'minorenne' usando la expresión ternaria (if/else en una sola línea).
Mostrar pista
Sintaxis: value_if_true if condition else value_if_false
Solución disponible después de 3 intentos
Desafío adicional
Escribe una estructura condicional que verifique si la variable `x` (inicializada en `-5`) es mayor que 0, menor que 0 o igual a 0. Asigna la cadena `'positive'`, `'negative'` o `'zero'` a `sign` según corresponda. Finalmente, evalúa `sign`.
Mostrar pista
Usa if x > 0:, elif x < 0:, y else: para manejar los tres casos.
Solución disponible después de 3 intentos