.
Solución al Ejercicio: Pronosticar el tiempo según el día
📋 Copiar código
import random
def pronostico_tiempo_espanol(dia_semana):
"""
Toma el día de la semana en español y devuelve un pronóstico de tiempo simplificado
(soleado o lluvioso) asignado aleatoriamente.
Args:
dia_semana: El día de la semana en español (cadena de texto).
Returns:
Un mensaje (cadena de texto) con el pronóstico del tiempo para ese día.
Si el día de la semana no es reconocido, devuelve un mensaje indicándolo.
"""
pronosticos = {
"lunes": random.choice(["soleado", "lluvioso"]),
"martes": random.choice(["soleado", "lluvioso"]),
"miércoles": random.choice(["soleado", "lluvioso"]),
"jueves": random.choice(["soleado", "lluvioso"]),
"viernes": random.choice(["soleado", "lluvioso"]),
"sábado": random.choice(["soleado", "lluvioso"]),
"domingo": random.choice(["soleado", "lluvioso"])
}
dia_lower = dia_semana.lower()
if dia_lower in pronosticos:
return f"Para el {dia_semana}, mi pronóstico es: {pronosticos[dia_lower]}."
else:
return f"No reconozco el día '{dia_semana}'. Por favor, introduce un día de la semana en español."
# Ejemplo de uso
dia1 = "lunes"
pronostico1 = pronostico_tiempo_espanol(dia1)
print(pronostico1)
dia2 = "sábado"
pronostico2 = pronostico_tiempo_espanol(dia2)
print(pronostico2)
dia_invalido = "juernes"
pronostico_invalido = pronostico_tiempo_espanol(dia_invalido)
print(pronostico_invalido)
dia_mayusculas = "MARTES"
pronostico_mayusculas = pronostico_tiempo_espanol(dia_mayusculas)
print(pronostico_mayusculas)
Explicación del Código:
-
import random
:
- Importa el módulo
random
para poder elegir aleatoriamente entre "soleado" y "lluvioso".
-
def
pronostico_tiempo_espanol(dia_semana):
:
- Define una función llamada
pronostico_tiempo_espanol
que toma el nombre del día de la semana
en español (dia_semana
) como argumento.
-
"""Docstring..."""
:
- La cadena de documentación explica la
función, su argumento y lo que devuelve.
-
pronosticos = {...}
:
- Se crea un diccionario llamado
pronosticos
donde las claves son los días de la semana en español
(en minúsculas) y los valores son una elección aleatoria entre las
cadenas "soleado" y "lluvioso" para cada día.
-
dia_lower = dia_semana.lower()
:
- Se convierte el
dia_semana
de entrada a minúsculas utilizando .lower()
para que la
comparación con las claves del diccionario sea insensible a mayúsculas y
minúsculas.
-
if dia_lower in pronosticos:
:
- Se verifica si el
dia_lower
(el día de la semana en minúsculas) existe como clave en el diccionario
pronosticos
.
-
return f"Para el {dia_semana},
mi pronóstico es: {pronosticos[dia_lower]}."
:
- Si el día de la semana es reconocido, se
devuelve un mensaje con el pronóstico aleatorio para ese día.
-
else:
:
- Si el día de la semana no se encuentra
como clave en el diccionario
pronosticos
.
-
return f"No reconozco el día
'{dia_semana}'. Por favor, introduce un día de la semana en español."
:
- Se devuelve un mensaje indicando que el
día de la semana no fue reconocido, pidiendo al usuario que introduzca
un día válido en español.
-
Ejemplo de uso:
- Se definen varios nombres de días de la
semana (incluyendo uno inválido y uno en mayúsculas).
- Se llama a la función
pronostico_tiempo_espanol
con cada día y el pronóstico resultante
se imprime.