From a64d48ab5d55d4a832e0825ec40d4147a699bb11 Mon Sep 17 00:00:00 2001 From: Josep Monclus Date: Mon, 8 Jan 2024 10:37:05 +0100 Subject: [PATCH] Reto #43 - Python --- .../python/josepmonclus.py" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "Retos/Reto #43 - SIMULADOR DE CLIMA [F\303\241cil]/python/josepmonclus.py" diff --git "a/Retos/Reto #43 - SIMULADOR DE CLIMA [F\303\241cil]/python/josepmonclus.py" "b/Retos/Reto #43 - SIMULADOR DE CLIMA [F\303\241cil]/python/josepmonclus.py" new file mode 100644 index 0000000000..3aa2cc6ec2 --- /dev/null +++ "b/Retos/Reto #43 - SIMULADOR DE CLIMA [F\303\241cil]/python/josepmonclus.py" @@ -0,0 +1,64 @@ +''' +Crea una función que simule las condiciones climáticas (temperatura y probabilidad de lluvia) +de un lugar ficticio al pasar un número concreto de días según estas reglas: +- La temperatura inicial y el % de probabilidad de lluvia lo define el usuario. +- Cada día que pasa: + - 10% de posibilidades de que la temperatura aumente o disminuya 2 grados. + - Si la temperatura supera los 25 grados, la probabilidad de lluvia al día + siguiente aumenta en un 20%. + - Si la temperatura baja de 5 grados, la probabilidad de lluvia al día + siguiente disminuye en un 20%. + - Si llueve (100%), la temperatura del día siguiente disminuye en 1 grado. +- La función recibe el número de días de la predicción y muestra la temperatura + y si llueve durante todos esos días. +- También mostrará la temperatura máxima y mínima de ese periodo y cuántos días va a llover. +''' +import random + +def predict_weather(initial_temperature: int, initial_rain: int, days: int): + rain_days = 0 + max_temperature = initial_temperature + min_temperature = initial_temperature + + temperature = initial_temperature + rain = initial_rain + + for day in range(1, days + 1): + + print(f"Día {day}: {temperature}º y {rain}% de lluvia") + + if random.randint(0, 1) == 0: + temperature += 2 + else: + temperature -= 2 + + if temperature > 25: + rain += 20 + if rain > 100: + rain = 100 + + if temperature < 5: + rain -= 20 + if rain < 0: + rain = 0 + + if rain == 100: + temperature -= 1 + + if random.randint(1, 100) <= rain: + rain_days += 1 + print("Está lloviendo!") + + if temperature > max_temperature: + max_temperature = temperature + if temperature < min_temperature: + min_temperature = temperature + + print("") + print(f"Temperatura máxima del periodo: {max_temperature}º") + print(f"Temperatura mínima del periodo: {min_temperature}º") + print(f"Días lluviosos del periodo: {rain_days}") + + + +predict_weather(25, 0, 50) \ No newline at end of file