import requests
Se importa el módulo requests, que permite hacer solicitudes HTTP fácilmente.
def obtener_clima(ciudad, api_key):
Se define una función que recibe dos parámetros: el nombre de la ciudad y la clave de API para autenticarse.
url = f"http://api.openweathermap.org/data/2.5/weather?q={ciudad}&appid={api_key}&units=metric&lang=es"
Se construye la URL con formato f-string para incluir la ciudad, la API Key, unidades métricas y lenguaje en español.
respuesta = requests.get(url)
Se hace la solicitud HTTP GET a la API de OpenWeatherMap.
if respuesta.status_code == 200:
Se comprueba si la respuesta fue exitosa (código 200).
datos = respuesta.json()
clima = {
"ciudad": datos["name"],
"temperatura": datos["main"]["temp"],
"descripcion": datos["weather"][0]["description"],
"humedad": datos["main"]["humidity"],
"viento": datos["wind"]["speed"]
}
return clima
Se convierte la respuesta a JSON y se extraen los datos principales del clima en un diccionario.
else:
return {"error": "No se pudo obtener el clima."}
Si el código de estado no es 200, se retorna un mensaje de error.
if __name__ == "__main__":
ciudad = input("Ingrese el nombre de la ciudad: ")
api_key = "TU_API_KEY_AQUI"
clima = obtener_clima(ciudad, api_key)
Se ejecuta este bloque solo si el archivo se ejecuta directamente. Se pide al usuario la ciudad y se llama a la función.
if "error" in clima:
print(clima["error"])
else:
print(f"Clima en {clima['ciudad']}:")
print(f"Temperatura: {clima['temperatura']}°C")
print(f"Descripción: {clima['descripcion']}")
print(f"Humedad: {clima['humedad']}%")
print(f"Viento: {clima['viento']} m/s")
Se verifica si hubo error. Si no, se imprime la información detallada del clima.