question archive When prompting the user you must always include text which lets the user know what should be inputted

When prompting the user you must always include text which lets the user know what should be inputted

Subject:Computer SciencePrice:3.87 Bought7

When prompting the user you must always include text which lets the user know what should be inputted.

Update the weather.py file to do the following:

  • Using separate prompts, prompt the user to enter the latitude of the weathe
  • r station and the longitude of the weather station
  • Use the latitude and longitude to retrieve the following information:
  • Station Name
  • Current Conditions eg. Sunny, Partly Cloudy etc.
  • Temperature in Fahrenheit
  • Elevation
  • Display the output as follows:

WEATHER.PY FILE:

 

import bs4, requests

 

try:

 

url = 'https://forecast.weather.gov/MapClick.php?'

 

latlong = 'lat=46.8837&lon=-102.7817'

 

# Combines url and zip

 

res = requests.get(url + latlong)

 

# Checks for error, and raises it as necessary

 

res.raise_for_status()

 

soup = bs4.BeautifulSoup(res.text, 'html.parser')

 

# Select for station

 

elems = soup.select('#current-conditions > div.panel-heading > div > h2')

 

# Retrieves station information and prints it out

 

stationName = elems[0].text

 

print(stationName)

 

except Exception as ex:

 

# Print out any error messages

 

print('There was a problem retrieving the information')

 

The following are some urls with the latitude and longitude of weather stations to test your program:

https://forecast.weather.gov/MapClick.php?lat=32.73016&lon=-117.19518

https://forecast.weather.gov/MapClick.php?lat=46.999&lon=-102.8833

https://forecast.weather.gov/MapClick.php?lat=33.417&lon=-111.8315

https://forecast.weather.gov/MapClick.php?lat=41.2607&lon=-95.9403

https://forecast.weather.gov/MapClick.php?lat=30.4391&lon=-81.703

https://forecast.weather.gov/MapClick.php?lat=41.3108&lon=-105.5903

pur-new-sol

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE

Answer Preview

Answer:

Python Programming:

NOTE:

  • Please don't down vote this answer. I have provided code with comment lines for better understanding. If you still need any help with this question, please let me know in the comment section. I will definitely help you.

Step-by-step explanation

  • After entering latitude and longitude wait for some time to see the result.
  • Use given latitude and longitudes for testing the code.

Code:

 

import bs4, requests


try:
	# website url to retrive weather station info
	url = "https://forecast.weather.gov/MapClick.php?"
	
	# taking input for latitude and longitude
	lat = input("Enter latitude of the location (Ex: 31.7798):  ")
	lon = input("\nEnter longitude of the location (Ex: -106.3763):  ")
	
	# comines lat and lon
	latlong = 'lat='+lat+'&lon='+lon
	
	# Combines url and zip
	res = requests.get(url + latlong)
	
	# Checks for error, and raises it as necessary
	res.raise_for_status()
	soup = bs4.BeautifulSoup(res.text, "html.parser")
	
	# Select for station
	elems = soup.select("#current-conditions > div.panel-heading > div > h2")
	
	# Retrieves station information
	stationName = elems[0].text
	
	# Select for current conditions
	elems = soup.select("#current_conditions-summary > p.myforecast-current")
	
	# Retrieves current conditions information
	condition = elems[0].text
	
	# Select for current temperature
	elems = soup.select("#current_conditions-summary > p.myforecast-current-lrg")
	
	# Retrieves current temperature in fahrenheit
	tempInF = elems[0].text
	
	# Select for elevation
	elems = soup.select("#current-conditions > div.panel-heading > div > span")
	
	# Retrieves elevation information
	idx = elems[0].text.find("Elev:")
	elevation = elems[0].text[idx + 6 : -1]
	
	# Print all retrieved information using string format method
	print("\nStation:{:<20}{}".format('', stationName))
	print("Current Conditions:{:<9}{}".format('', condition))
	print("Current Temperature:{:<8}{}".format('', tempInF))
	print("Elevation:{:<18}{}".format('', elevation))


except Exception as ex:
	# Print out any error messages
	print("There was a problem retrieving the information")

 

Output:

PFA

Related Questions