import requests
API_KEY = "3f667bce829ca6d85f63e25fcf582795"
def get_weather(city_name): base_url = "https://api.openweathermap.org/data/2.5/weather" params = { 'q': city_name.strip(), # Clean up input 'appid': API_KEY, 'units': 'metric' # Use Celsius }
try:
response = requests.get(base_url, params=params)
response.raise_for_status() # Raise error for bad responses
data = response.json()
# Display weather info
print("\n=============================")
print(f"π City: {data['name']}, {data['sys']['country']}")
print(f"π‘ Temperature: {data['main']['temp']}Β°C")
print(f"π€ Feels Like: {data['main']['feels_like']}Β°C")
print(f"π§ Humidity: {data['main']['humidity']}%")
print(f"π¬ Wind Speed: {data['wind']['speed']} m/s")
print(f"β Condition: {data['weather'][0]['description'].title()}")
print("=============================\n")
except requests.exceptions.HTTPError as http_err:
if response.status_code == 404:
print("β City not found. Please check the name and try again.")
elif response.status_code == 401:
print("β Invalid API key. Please check your API key.")
else:
print(f"β HTTP error occurred: {http_err}")
except requests.exceptions.RequestException as err:
print(f"β Error connecting to the weather service: {err}")
def main(): print("π€ Welcome to the Python Weather App π€")
while True:
city = input("\nEnter city name (or type 'exit' to quit): ")
if city.lower() == 'exit':
print("π Goodbye! Stay weather-wise! π")
break
elif city.strip() == '':
print("β οΈ Please enter a valid city name.")
else:
get_weather(city)
if name == "main": main()