这是我面临的问题的语法:
加热和冷却度日由公用事业公司测量以估算能量需求。如果一天的平均温度低于60℃,则将60度以下的度数加到加热度 - 天。如果温度高于80℃,则将超过80的量加入冷却度 - 天。编写一个接受一系列日平均温度的程序,并计算冷却和加热度数天的运行总量。在处理完所有数据后,程序应打印这两个总数。
当我运行我的程序时,它会让我输入临时值,但是当我按下Enter表示我已完成输入数据时,我得到了返回"未知错误"。谢谢你的帮助。
def main():
print("Please enter daily average temperature below. Leave empty when finish.")
hdd,cdd,hot,cool = 0,0,0,0
date = 1
try:
temp = input("Day #{} :".format(date))
while temp != "":
temp = int(temp)
if temp > 80:
cdd = (temp-80)+cdd
if temp < 60:
hdd = (60-temp)+hdd
date = date+1
temp = input("Day #{} :".format(date))
print("In {} days, there\'r total of {} HDD and {} CDD.".format(date-1,hdd,cdd))
except ValueError:
print('Please correct your data.')
except:
print('Unknown error.')
main()
答案 0 :(得分:0)
使用raw_input()
代替input()
。您的temp
变量正在尝试“#1}}变量。当它为空时为一个int(因为它&#39;&#34;&#34;)。
它会给你一个语法错误,因为input()
会尝试评估你输入的表达式。你应该坚持raw_input()
并将值转换为你需要的值,直到你知道你确实需要input()
来获取具体的东西。
将input()
更改为raw_input()
后:
Day #1 :1
Day #2 :2
Day #3 :3
Day #4 :90
Day #5 :90
Day #6 :
6 174 20
In 5 days, there'r total of 174 HDD and 20 CDD.
答案 1 :(得分:0)
错误是因为您在python 2.7上使用了input()
。它遇到了这个错误:
SyntaxError: unexpected EOF while parsing
由于您的上一个except
条款,您的程序将无法显示。
错误的原因是因为python 2.7上的input()
等同于获取输入并执行它。在你的情况下,它试图不执行任何输入。
使用raw_input()
,您的代码运行正常。
此处讨论了有关python 2.7上input()
的错误的更多详细信息 - Why input() gives an error when I just press enter?