30 días de Python: Día 9 - Sentencias condicionales
Autor:
Asabeneh Yetayeh
Segunda edición: julio de 2021
[<< Día 8](./08_dictionaries_sp.md) | [Día 10 >>](./10_loops_sp.md)

- [📘 Día 9](#-día-9)
- [Sentencias condicionales](#sentencias-condicionales)
- [Condición If](#condición-if)
- [If Else](#if-else)
- [If Elif Else](#if-elif-else)
- [Abreviación](#abreviación)
- [Condicionales anidados](#condicionales-anidados)
- [If y operadores lógicos](#if-y-operadores-lógicos)
- [If y operador lógico Or](#if-y-operador-lógico-or)
- [💻 Ejercicios - Día 9](#-ejercicios---día-9)
- [Ejercicios: Nivel 1](#ejercicios-nivel-1)
# 📘 Día 9
## Sentencias condicionales
Por defecto, las sentencias en un script de Python se ejecutan secuencialmente de arriba hacia abajo. Si la lógica lo requiere, podemos cambiar el orden de dos maneras:
- Ejecución condicional: si una expresión es verdadera, se ejecutan uno o más bloques de código
- Ejecución repetitiva: mientras una expresión sea verdadera, se repiten uno o más bloques de código. En esta sección discutiremos las sentencias *if*, *else* y *elif*. Los operadores de comparación y lógicos vistos antes serán útiles aquí.
### Condición If
En Python y otros lenguajes, la palabra clave *if* se usa para comprobar si una condición es verdadera y ejecutar un bloque de código. Recuerda la indentación después de los dos puntos.
```py
# Sintaxis
if condition:
# Si la condición es verdadera, ejecutar este bloque de código
```
**Ejemplo 1**
```py
a = 3
if a > 0:
print('A es un número positivo')
# A es un número positivo
```
Como se muestra arriba, 3 es mayor que 0. La condición es verdadera y se ejecuta el bloque de código. Si la condición fuera falsa, no veríamos resultado; para manejar condiciones falsas usamos el bloque *else*.
### If Else
Si la condición es verdadera se ejecuta el primer bloque, de lo contrario se ejecuta el bloque *else*.
```py
# Sintaxis
if condition:
# Si la condición es verdadera, ejecutar este bloque
else:
# Si la condición es falsa, ejecutar este bloque
```
**Ejemplo:**
```py
a = 3
if a < 0:
print('A es un número negativo')
else:
print('A es un número positivo')
```
La condición anterior es falsa, por eso se ejecuta el bloque *else*. ¿Y si tenemos más de dos condiciones? Podemos usar *elif*.
### If Elif Else
En la vida tomamos decisiones cada día que implican más de una condición. En programación, cuando tenemos múltiples condiciones, usamos *elif*.
```py
# Sintaxis
if condition:
# código
elif condition:
# código
else:
# código
```
**Ejemplo:**
```py
a = 0
if a > 0:
print('A es un número positivo')
elif a < 0:
print('A es un número negativo')
else:
print('A es cero')
```
### Abreviación
```py
# Sintaxis
if condición else
```
**Ejemplo:**
```py
a = 3
print('A es positivo') if a > 0 else print('A es negativo') # Se cumple la primera condición, imprimirá 'A es positivo'
```
### Condicionales anidados
Los condicionales pueden anidarse.
```py
# Sintaxis
if condición:
# código
if condición:
# código
```
**Ejemplo:**
```py
a = 0
if a > 0:
if a % 2 == 0:
print('A es un número positivo y par')
else:
print('A es un número positivo')
elif a == 0:
print('A es cero')
else:
print('A es un número negativo')
```
Podemos usar el operador lógico *and* para evitar escribir condicionales anidados.
### If y operadores lógicos
```py
# Sintaxis
if condición and condición:
# código
```
**Ejemplo:**
```py
a = 0
if a > 0 and a % 2 == 0:
print('A es un número positivo y par')
elif a > 0 and a % 2 != 0:
print('A es un número positivo')
elif a == 0:
print('A es cero')
else:
print('A es un número negativo')
```
### If y operador lógico Or
```py
# Sintaxis
if condición or condición:
# código
```
**Ejemplo:**
```py
user = 'James'
access_level = 3
if user == 'admin' or access_level >= 4:
print('Acceso concedido!')
else:
print('Acceso denegado!')
```
🌕 Lo estás haciendo muy bien. Nunca te rindas; las cosas grandiosas requieren tiempo. Acabas de completar el desafío del Día 9; estás a 9 pasos en tu camino hacia lo grande. Haz ahora algunos ejercicios para entrenar tu mente y tu cuerpo.
## 💻 Ejercicios - Día 9
### Ejercicios: Nivel 1
1. Usa input para obtener la edad del usuario (por ejemplo: "Introduce tu edad:"). Si el usuario tiene 18 años o más, muestra: 'Ya tienes la edad suficiente para aprender a conducir.' Si es menor, muestra cuántos años le faltan. Ejemplo de salida:
```sh
Introduce tu edad: 30
Ya tienes la edad suficiente para aprender a conducir.
Salida:
Introduce tu edad: 15
Aún necesitas esperar 3 años para aprender a conducir.
```
2. Usa if…else para comparar my_age y your_age. ¿Quién es mayor (yo o tú)? Usa input("Introduce tu edad:") para obtener la edad. Puedes usar condicionales anidados para imprimir 'año' cuando la diferencia sea 1, 'años' para diferencias mayores, y un mensaje personalizado si my_age = your_age. Salida de ejemplo:
```sh
Introduce tu edad: 30
Tienes 5 años más que yo.
```
3. Pide al usuario dos números con input. Si a > b, imprime 'a es mayor que b'; si a < b, imprime 'a es menor que b'; si son iguales, imprime 'a es igual a b'.
```sh
Introduce el primer número: 4
Introduce el segundo número: 3
4 es mayor que 3
```
### Ejercicios: Nivel 2
1. Escribe un código que asigne una calificación según la nota del estudiante:
```sh
80-100, A
70-79, B
60-69, C
50-59, D
0-49, F
```
2. Comprueba si es otoño, invierno, primavera o verano. Si el usuario introduce:
Septiembre, Octubre o Noviembre → otoño.
Diciembre, Enero o Febrero → invierno.
Marzo, Abril o Mayo → primavera.
Junio, Julio u Agosto → verano.
3. La siguiente lista contiene algunas frutas:
```py
fruits = ['banana', 'orange', 'mango', 'lemon']
```
Si una fruta no está en la lista, añádela e imprime la lista modificada. Si ya existe, imprime 'La fruta ya está en la lista'.
### Ejercicios: Nivel 3
1. Aquí hay un diccionario persona. ¡Siéntete libre de modificarlo!
```py
person = {
'first_name': 'Asabeneh',
'last_name': 'Yetayeh',
'age': 250,
'country': 'Finlandia',
'is_married': True,
'skills': ['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address': {
'street': 'Calle Espacial',
'zipcode': '02210'
}
}
```
- Comprueba si existe la clave skills en el diccionario; si existe, imprime la habilidad central de la lista skills.
- Comprueba si existe la clave skills; si existe, verifica si la persona tiene la habilidad 'Python' e imprime el resultado.
- Si las habilidades son sólo JavaScript y React, imprime 'Es desarrollador frontend'; si incluyen Node, Python y MongoDB, imprime 'Es desarrollador backend'; si incluyen React, Node y MongoDB, imprime 'Es desarrollador full-stack'; en caso contrario, imprime 'Título desconocido' — puedes anidar más condiciones para mayor precisión.
- Si la persona está casada y vive en Finlandia, imprime la siguiente línea:
```py
print('Asabeneh Yetayeh vive en Finlandia. Está casado.')
```
🎉 ¡Felicidades! 🎉
[<< Día 8](./08_dictionaries_sp.md) | [Día 10 >>](./10_loops_sp.md)