while statements
martyw
nomail at noserve
Tue Oct 16 15:05:39 EDT 2007
Shawn Minisall wrote:
> I just learned about while statements and get why you place them around
> inputs for validation, but I'm a little lost on exactly where to place
> it with what condition in this program where the number of fat grams
> exceeds the total number of calories so that it loops back and asks you
> the two questions again instead of just saying The calories or fat grams
> were incorrectly entered. Any idea's?
>
> thx
>
> while cal <=0:
> #Prompt for calories
> cal = input("Please enter the number of calories in your food: ")
> if cal <=0:
> print "Error. The number of calories must be positive."
>
> #Prompt for fat
> fat = input("Please enter the number of fat grams in your food: ")
> if fat <=0:
> print "Error. The number of fat grams must be positive."
>
>
> #Calculate calories from fat
> calfat = float(fat) * 9
> #Calculate number of calories from fat
> caldel = calfat / cal
>
> #change calcent decimal to percentage
> calcent = caldel * 100
>
> #evaluate input
> if calfat > cal:
> print "The calories or fat grams were incorrectly entered."
>
> elif calcent > 0 and calfat < cal:
> if caldel <= .3:
> print "Your food is low in fat."
> elif caldel >= .3:
> print "Your food is high in fat."
>
> #Display percentage of calories from fat
> print "The percentage of calories from fat in your food is %",
> calcent
>
you could change to something like this
while True: # don test in the loop
#Prompt for calories
cal = input("Please enter the number of calories in your food: ")
if cal <=0:
print "Error. The number of calories must be positive."
continue ### here you don need to go any further in this loop
#Prompt for fat
fat = input("Please enter the number of fat grams in your food: ")
if fat <=0:
print "Error. The number of fat grams must be positive."
continue ### here you don need to go any further in this loop
#Calculate calories from fat
calfat = float(fat) * 9
#Calculate number of calories from fat
caldel = calfat / cal
#change calcent decimal to percentage
calcent = caldel * 100
#evaluate input
if calfat > cal:
print "The calories or fat grams were incorrectly entered."
#elif calcent > 0 and calfat < cal:
else: # calcent will be bigger than zero now by construction,
# and I guess you dont want to test for equality of
# calfat and cal
if caldel <= .3:
print "Your food is low in fat."
elif caldel >= .3:
print "Your food is high in fat."
#Display percentage of calories from fat
print "The percentage of calories from fat in your food "\
"is %f%%" % calcent
break # we got a satisfactory result, leave this loop
More information about the Python-list
mailing list