【发布时间】:2011-02-22 04:58:38
【问题描述】:
我对编程完全陌生,所以我决定自学 Python。在浏览the Non-Programmer's Tutorial for Python 3 时,我偶然发现了一件奇怪的事情。当我运行这段代码时:
def print_options():
print('Options:')
print(" 'p' print options")
print(" 'c' convert from Celsius")
print(" 'f' convert from Fahrenheit")
print(" 'q' quit")
def c_to_f(c_temp):
return 9.0/5.0 * c_temp + 32
def f_to_c(f_temp):
return (f_temp-32)*5.0/9.0
choice = 'p'
while choice != 'q':
if choice == 'c':
temp = float(input('Celsius temp: '))
print('Fahrenheit:', c_to_f(temp))
elif choice == 'f':
temp = float(input('Fahrenheit temp:'))
print('Celsius:', f_to_c(temp))
elif choice == 'p':
print_options()
choice = input('Options: ')
结果输出是你所期望的:
Options:
'p' print options
'c' convert from Celsius
'f' convert from Fahrenheit
'q' quit
Options: f
Fahrenheit temp:98.6
Celsius: 37.0
Options: c
Celsius temp: 37
Fahrenheit: 98.60000000000001
Options: q
但是当我在 Eclipse 上运行相同的代码时(IDLE 崩溃了,所以我尝试了其他方法),程序只是循环而不是进入其他选项:
Options:
'p' print options
'c' convert from Celsius
'f' convert from Fahrenheit
'q' quit
Options: c
Options:
'p' print options
'c' convert from Celsius
'f' convert from Fahrenheit
'q' quit
Options: f
Options:
'p' print options
'c' convert from Celsius
'f' convert from Fahrenheit
'q' quit
Options: q
Options:
'p' print options
'c' convert from Celsius
'f' convert from Fahrenheit
'q' quit
Options:
是代码本身有什么问题导致了这种情况,还是只是一些不稳定的交互?任何帮助将不胜感激。
【问题讨论】:
标签: eclipse python-3.x pydev