From: Dave Luzius on 8 May 2010 14:52 Pleaser help me with this. Here's a copy of the program, but it keeps calling for me to define pressure. # A small program to fetch local barometer reading from weather.com # and convert the value from metric to imperial. # My first attempt at Python. #-------------------------------------------------------------------- import urllib # next line does the fetching urllib.urlopen("http://xoap.weather.com/weather/local/USMI0060", pressure) # next line does the conversion to imperial imppress = 0.029875 * float(pressure) # next line shows the results. print imppress as you can see, I'm stuck on what should be relatively simple. TIA, Dave
From: Steven D'Aprano on 8 May 2010 15:02 On Sat, 08 May 2010 18:52:33 +0000, Dave Luzius wrote: > Pleaser help me with this. Here's a copy of the program, but it keeps > calling for me to define pressure. That's because you haven't defined pressure. When Python tells you there is a bug in your program, it is almost always correct. > # A small program to fetch local barometer reading from weather.com > # and convert the value from metric to imperial. > # My first attempt at Python. > #-------------------------------------------------------------------- > import urllib > > # next line does the fetching > urllib.urlopen("http://xoap.weather.com/weather/local/USMI0060", > pressure) What is pressure? It is an undefined name. Where does pressure get its value from? -- Steven
From: Dave Luzius on 8 May 2010 15:13 On Sat, 08 May 2010 19:02:42 +0000, Steven D'Aprano wrote: > On Sat, 08 May 2010 18:52:33 +0000, Dave Luzius wrote: > >> Pleaser help me with this. Here's a copy of the program, but it keeps >> calling for me to define pressure. > > That's because you haven't defined pressure. > > When Python tells you there is a bug in your program, it is almost > always correct. > > >> # A small program to fetch local barometer reading from weather.com # >> and convert the value from metric to imperial. # My first attempt at >> Python. >> #-------------------------------------------------------------------- >> import urllib >> >> # next line does the fetching >> urllib.urlopen("http://xoap.weather.com/weather/local/USMI0060", >> pressure) > > What is pressure? It is an undefined name. Where does pressure get its > value from? Pressure is a term for barometric pressure, and is understood by Conky, which this program is designed to work with, and is understood by weather.com. But the value it passes to conky is metric, and I want it to display in imperial. What should I do....
From: Walter Brameld IV on 8 May 2010 15:35 Dave Luzius wrote: > On Sat, 08 May 2010 19:02:42 +0000, Steven D'Aprano wrote: > >> On Sat, 08 May 2010 18:52:33 +0000, Dave Luzius wrote: >> >>> Pleaser help me with this. Here's a copy of the program, but it keeps >>> calling for me to define pressure. >> That's because you haven't defined pressure. >> >> When Python tells you there is a bug in your program, it is almost >> always correct. >> >> >>> # A small program to fetch local barometer reading from weather.com # >>> and convert the value from metric to imperial. # My first attempt at >>> Python. >>> #-------------------------------------------------------------------- >>> import urllib >>> >>> # next line does the fetching >>> urllib.urlopen("http://xoap.weather.com/weather/local/USMI0060", >>> pressure) >> What is pressure? It is an undefined name. Where does pressure get its >> value from? > > Pressure is a term for barometric pressure, and is understood by Conky, > which this program is designed to work with, and is understood by > weather.com. But the value it passes to conky is metric, and I want it to > display in imperial. > > What should I do.... You're passing in the value of pressure as the 'data' parameter to urllib.urlopen. So...what is the value of pressure? You haven't assigned any value to it before calling urlopen. Therein lies the problem.
From: Benjamin Kaplan on 8 May 2010 15:41 On Sat, May 8, 2010 at 3:13 PM, Dave Luzius <dluzius(a)comcast.net> wrote: > > Pressure is a term for barometric pressure, and is understood by Conky, > which this program is designed to work with, and is understood by > weather.com. But the value it passes to conky is metric, and I want it to > display in imperial. > > What should I do.... > -- Don't tell us what pressure is. Tell Python. >>> urllib.urlopen("http://xoap.weather.com/weather/local/USMI0060", pressure) What do you think this line does? Because it does absolutely nothing. Assuming pressure is defined It creates a file-like object connected to that URL. But because that file-like object is never assigned to anything, it's reference count drops to 0 and it's immediately closed and deleted. You have to 1) Assign the file-like object to some name. 2) Read the data from the file-like object 3) convert the string you read from the file-like object into a float 4) use the float to do math Python is succinct, but it isn't magic. Just like every other programming language, it can't guess what you want it to do.
|
Next
|
Last
Pages: 1 2 Prev: Fastest way to calculate leading whitespace Next: [ANN] Pyspread 0.1.1 released |