Weather Forecast Application

Get API Key

  1. Sign up at OpenWeatherMap and create an API key.
  2. Note the API key, as you will need it to make requests.

Step 2: Install Required Packages

You’ll need the requests library to make API calls. You can install it using pip:

bashCopy codepip install requests

Step 3: Create the Weather Application

Create a file named weather_forecast.py and add the following code:

pythonCopy codeimport requests

class WeatherForecast:
def __init__(self, api_key):
    self.api_key = api_key
    self.base_url = "http://api.openweathermap.org/data/2.5/weather"
def get_weather(self, city):
    """Fetch the weather data for the given city."""
    try:
        params = {
            'q': city,
            'appid': self.api_key,
            'units': 'metric'  # Change to 'imperial' for Fahrenheit
        }
        response = requests.get(self.base_url, params=params)
        response.raise_for_status()  # Raise an error for bad responses
        return response.json()
    except requests.exceptions.HTTPError as e:
        print(f"HTTP error: {e}")
        return None
    except Exception as e:
        print(f"Error fetching weather data: {e}")
        return None
def display_weather(self, city):
    """Display the weather information."""
    weather_data = self.get_weather(city)
    if weather_data:
        city_name = weather_data['name']
        temperature = weather_data['main']['temp']
        description = weather_data['weather'][0]['description']
        humidity = weather_data['main']['humidity']
        wind_speed = weather_data['wind']['speed']
        print(f"\nWeather in {city_name}:")
        print(f"Temperature: {temperature}°C")
        print(f"Description: {description.capitalize()}")
        print(f"Humidity: {humidity}%")
        print(f"Wind Speed: {wind_speed} m/s")
    else:
        print("Could not retrieve weather data.")
def main():
api_key = input("Enter your OpenWeatherMap API key: ")
weather_app = WeatherForecast(api_key)
while True:
    city = input("\nEnter city name (or 'quit' to exit): ")
    if city.lower() == 'quit':
        print("Exiting the application.")
        break
    weather_app.display_weather(city)
if __name__ == "__main__":
main()

Step 4: Running the Weather Application

  1. Open your terminal (or command prompt).
  2. Navigate to the directory where you saved weather_forecast.py.
  3. Run the script using the command:bashCopy codepython weather_forecast.py

How It Works

  • API Integration: The application fetches weather data from OpenWeatherMap using an API call based on the city name provided by the user.
  • Data Display: It displays the temperature, weather description, humidity, and wind speed.
  • User Input: The user can enter a city name to get the weather or type quit to exit.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *