[Tutor] Just started Python

Johnson Tran aznjonn at me.com
Wed Apr 27 22:17:53 CEST 2011


Thanks for the reply Alan and Noah, I really appreciate the help. I am really trying to understand this although still cannot seem to grasp it all. I have modified my program although now it seems to be giving me the wrong answer with the correct answer when I input any value.

I have program:

model=raw_input("What kind of car do you drive?")
gallons=raw_input("How many gallons have you driven?")
number1 = float (gallons)
miles=raw_input("How many miles have you driven?")
number2 = float (miles)


try:
   model=float(model)
except ValueError:
   print "I cannot compute your total miles to gallon with those values."
else:
   print "Your average number of miles to gallons is",
print number1 / number2

Output:

What kind of car do you drive?fire
How many gallons have you driven?10
How many miles have you driven?5
I cannot compute your total miles to gallon with those values.


On Apr 27, 2011, at 10:02 AM, Alan Gauld wrote:

> 
> "Johnson Tran" <aznjonn at me.com> wrote
> 
>> I started out with a short program below and I thought it was working although I cannot seem to figure out how to use the except ValueError so that when the user puts an invalid answer the program does not read with an error. 
> 
> You have to replace the line that says 'pass' with code that does something to make the value correct. Asking the user to try again with a more sensible value would be a start.
> 
>> Although according to the error message, it seems to be saying that my line 4 "number1 = float (number_string1)" is incorrect. 
> 
> Its not saying its incorrect, its saying thats where the ValueError occured. Which is true because you entered 'test' which cannot be converted to a float - its an invalid value.
> 
>> model=raw_input("What kind of car do you drive?")
>> number_string1=raw_input("How many gallons have you driven?")
>> number1 = float (number_string1)
>> number_string2=raw_input("How many miles have you driven?")
>> number2 = float (number_string2)
> 
> You will fin it easier if you use descriptive names for your variables.
> 
> gallons and miles 
> would seem reasonable here...
> 
>> try:
>>   model=float(model)
>> except ValueError:
>>   pass
> 
> This says if you get an error ignore it (ie pass).
> But you don't want to ignore it, you want to get a valid value.
> 
>> print "Your average number of miles to gallons is",
>> print number1 / number2
> 
> HTH,
> 
> 
> -- 
> Alan Gauld
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> 
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor



More information about the Tutor mailing list