Python没有输出正确的值

时间:2014-04-16 04:36:03

标签: python python-2.7

这是我面临的问题的语法:

加热和冷却度日由公用事业公司测量以估算能量需求。如果一天的平均温度低于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()

2 个答案:

答案 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?