[Tutor] Please critique my temperature_conversion.py (original) (raw)
Dick Moores rdm at rcblue.com
Tue Jul 13 16:33:53 CEST 2004
- Previous message: [Tutor] Automation
- Next message: [Tutor] Os.system on winXP system having trouble with spaces in directory names
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Oops! forgot one line. Left out this line:
temp_unit = temp_unit.upper() (which enables user to enter lower-case c and f, as in 70f and 45c)
in this section:
make sure we know the unit
temp_unit = temp_unit.upper()
if not (temp_unit in ['F', 'C']):
print "Unknown unit (%s)." % temp_unit
continueSorry.
So the script now is:
#temperature_conversion.py """ temperature conversion: Fahrenheit <---> Celsius. User enters temperature as a number followed by a unit of either F or C. The program uses the variable "number" to hold this original number, and the variable "unit" to hold the original F or the C. """
print """ TempConverter.py
TempConverter will convert Fahrenheit to Celsius or Celsius to Fahrenheit. Enter a temperature as a value followed by a unit (F or C), such as 70F, 70 f, -12.47C, 34c, etc. To exit program, enter exit, quit, stop, q, or x """
import sys, time
def exit(): print "Thank you for using TempConverter. TempConverter will now close" time.sleep(1.1) # to provide the user with enough time to read the message
while True: temperature = ""
# for exiting via ^C or ^D
try:
temperature = raw_input('Temperature: ').strip()
except (TypeError, EOFError):
break
if temperature.lower() in ["exit", "quit", "stop", "q", "x"]:
break
# make sure there is input at all, i.e., catch ""; (" " already stripped) try: temp_unit = temperature[-1] temp_value = temperature[:-1] except: # input is too short print "Wrong input! Specify a value followed by a unit." continue
# make sure we know the unit
temp_unit = temp_unit.upper()
if not (temp_unit in ['F', 'C']):
print "Unknown unit (%s)." % temp_unit
continue
# make sure the value is a number
try:
temp_value = float(temp_value)
except:
print "The value you specified (%s) is not a number!" % temp_value
continue
#calculate new value now that sure have good value and unit
if temp_unit == "F":
new_value = 5/9. * (temp_value - 32)
print "%.2fF is %.2fC" % (temp_value, new_value)
else:
new_value = 9/5. * temp_value + 32
print "%.2fC is %.2fF" % (temp_value, new_value)exit()
- Previous message: [Tutor] Automation
- Next message: [Tutor] Os.system on winXP system having trouble with spaces in directory names
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]