Need help with my 1st python program

D

Dave Luzius

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
 
S

Steven D'Aprano

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?
 
D

Dave Luzius

That's because you haven't defined pressure.

When Python tells you there is a bug in your program, it is almost
always correct.



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....
 
W

Walter Brameld IV

Dave said:
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.
 
B

Benjamin Kaplan

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.

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.
 
S

Steven D'Aprano

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.

I know what pressure is in English. What is it in your program? When the
Python compiler sees the word "pressure", what do you expect it to do?

What should I do....

Perhaps you should start with a few simple tutorials and introductions to
programming before tackling this program.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,818
Latest member
SapanaCarpetStudio

Latest Threads

Top