[Tutor] trouble with "if"

Brian van den Broek broek at cc.umanitoba.ca
Wed May 23 18:12:16 CEST 2007


adam urbas said unto the world upon 05/23/2007 11:57 AM:
> 
> Hi all,
> 
> I've been working with this new program that I wrote.  I started out 
> with it on a Ti-83, which is much easier to program than python.  Now 
> I'm trying to transfer the program to python but its proving to be quite 
> difficult.  I'm not sure what the whole indentation thing is for.  And 
> now I'm having trouble with the if statement things. 
> 
> #"Circle Data Calculation Program:"
> print "Welcome to the Circle Data Calcuation Program."
> print
> 
>     #"Menu 1:"
> print "Pick a shape:"
> print "(NOTE: You must select the number of the shape and not the shape 
> itself)"
> print "1 Circle"
> print "2 Square"
> print "3 Triangle"
> 
>     #"User's Choice:"
> shape=raw_input("> ")
> 
>         #"Select Given:"
> if shape == 1:
>         print "Choose the given value:"
>         print "1 radius"
>         print "2 diameter"
>         print "3 circumference"
>         print "4 area"
> 
> #"User's Choice:"
> given=raw_input("> ")
> 
> if given == 1:
>         radius=raw_input("Enter Radius:")
>         diameter=(radius*2)
>         circumference=(diameter*3.14)
>         area=(radius**2*3.14)
>         print "Diameter:", diameter
>         print "Circumference:", circumference
>         print "Area:", area
> 
> if given == 2:
>         diameter=raw_input("Enter Diameter:")
>         radius=(diameter/2)
>         circumference=(diameter*3.14)
>         area=(radius**2*3.14)
>         print "Radius:", radius
>         print "Circumference:", circumference
>         print "Area:", area
> 
> if given == 3:
>         circumference=raw_input("Enter Circumference:")
>         radius=(circumference/3.14/2)
>         diameter=(radius*2)
>         area=(radius**2*3.14)
>         print "Radius:", radius
>         print "Diameter:", diameter
>         print "Area:", area
> 
> if given == 4:
>         area=raw_input("Enter Area:")
>         radius=(area/3.14)
>          
> This is the whole program so far, because I haven't quite finished it 
> yet.  But I tried to get it to display another list of options after you 
> select a shape but it just does this.
> 
> Pick a shape:
> 1 Circle
> 2 Square
> 3 Triangle
>  >1
>  >1
>  >>>
> 
> I'm not sure why it does that but I do know that it is skipping the 
> second list of options.
> 
> Another of my problems is that I can't figure out how to get it to 
> accept two different inputs for a selection.  Like I want it to accept 
> both the number 1 and circle as circle then list the options for 
> circle.  It won't even accept words.  I can only get it to accept 
> numbers.  It's quite frustrating actually.
> 
> Any advice would be greatly appreciated.
> Thanks in advance,
> Adam
> 
> 


Adam,

Could you send plain text email rather than html, please? At least for 
me, your code's indentation is all messed up unless I take some steps 
to rectify it.

The problem is that raw_input returns a string, and you are testing 
whether given is equal to integers. See if this helps make things clear:

 >>> data = raw_input('Feed me!')
Feed me!42
 >>> type(data)
<type 'str'>
 >>> data == 42
False
 >>> int(data) == 42
True
 >>>

Best,

Brian vdB


More information about the Tutor mailing list