In programming, I'm writing a code that the user chooses a solid, and then it calculates the volume and surface area. But instead of choosing directly, I give the user the option to ask for extra information on the solid, if they enter the number then 'show' (for example '1 show'). They can keep asking until a solid is chosen, so i used a while loop.
The loop isn't working. If the condition with the loop isn't valid, it still goes into it and loops and doesn't let me get out. Please help. It's pretty simple I think. I have tried to do integer and string conversions, without it helping.
#11/07/12
#A program that asks user for input and calculates SA and Volume of a chosen solid
print "Which solid would you like to calculate?"
print " "
print "1. Tetrahedron"
print "2. Dodecahedron"
print "3. Cone"
print "4. Sphere"
print "5. Icosahedron"
print ' '
print "If you want extra information on the solid, enter the solid's number and then add show. Example: 1 show"
print "If not, just enter the number"
choice = raw_input('----->')
#Where asks if user wants extra information on the solids, loops until solid is chosen
while choice != '1' or choice != '2' or choice != '3' or choice != '4' or choice != '5':
if choice == "1 show":
print "A tetrahedron is composed of four congruent triangle faces. "
if choice =='2 show':
print "A dodecahedron is a polyhedron composed of 12 pentagonal faces. "
if choice == '3 show':
print 'A cone is a geometric solid that tapers smoothly from a circular base to an apex. '
if choice == '4 show':
print "A sphere is a perfectly round circle. "
if choice == '5 show':
print 'An icosahedron is a regular polyhedron with 20 congruent equilateral triangular faces'
choice = raw_input('Your new choice: ')
if choice == 1: # Tetradedron
tetraside = raw_input("What is the length of your solid's side? ")
tetrabaseA = ((3 ** (1/2)) / 4) * tetraside**2
tetraheight = 9 * ((6 ** (1/2)) / 3) * tetraside
tetraSA = 4 * tetrabaseA
tetraV = (1 / 3) * tetrabaseA * tetraheight