2 usuarios conectados

Pronosticar el tiempo según el día en Python

Comparte esto

 
Escribe un código Python que tome el día de la semana (en español, por ejemplo, "lunes", "martes", ..., "domingo") y te diga si, según una predicción muy simplificada, es probable que haga buen tiempo (soleado) o mal tiempo (lluvioso) en España. Asigna aleatoriamente un pronóstico para cada día.

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. import random:

    • Importa el módulo random para poder elegir aleatoriamente entre "soleado" y "lluvioso".
  2. 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.
  3. """Docstring...""":

    • La cadena de documentación explica la función, su argumento y lo que devuelve.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. else::

    • Si el día de la semana no se encuentra como clave en el diccionario pronosticos.
  9. 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.

     

  10. 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.