2014-04-16 1 views
0

출력하기 않습니다. 하루 평균 기온이 60도 미만이면 60도 이하의 수를 난방 일수에 더합니다. 온도가 80보다 높으면 냉각 정도 - 일에 80을 초과하는 양이 추가됩니다. 평균, 임시의 시퀀스를 수용하고 냉난방 정도 일간의 누적 합계를 계산하는 프로그램을 작성한다. 프로그램은 모든 데이터가 처리 된 후에이 두 합계를 인쇄해야합니다.파이썬은 여기에 내가 직면하고있어 문제의 구문의 올바른 값

내가 내 프로그램을 실행하면, 그것은 나에게 입력 임시 직원을하자,하지만 난 누를 때 나는 반환 "알 수없는 오류"를 얻을 데이터 입력 끝났어요 나타 내기 위해 입력합니다. 도움을 주셔서 감사합니다.

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

사용자 지정 오류없이 전체 오류를 알려주십시오. – sshashank124

+3

이것은 ** 정확하게 except ** (모든 예외)가 권장되지 않는 ** 이유입니다. 실제 오류를 해결하기 위해 모든 기능을 제거했습니다. 제거하고 다시 사용하지 마십시오. –

+0

사용'sys.exc_info()'! – Luigi

답변

0

사용 raw_input() 대신 input(). (이 ""때문에)이 널 때 귀하의 temp 변수는 int를 '일'을 시도하셨습니다된다. input() 시도 당신이 넣어 식을 평가하기 때문에 당신에게 구문 오류를주고

. 당신은 실제로 특정 뭔가 input() 필요 당신이 당신을 알고 때까지 할 필요 무엇에 가치를 raw_input() 고수하고 주조한다.

raw_input()에 모두 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. 
0

오류 때문에 파이썬 2.7에 input()의 사용량이다. 그것은이 오류를 타격 : 프로그램이 감사를 표시하지 않습니다

SyntaxError: unexpected EOF while parsing 

마지막 except 절에. 파이썬 2.7 input()가 입력 받고이를 실행하는 것과 동일하므로

오류의 원인이다. 귀하의 경우에는 입력을 실행하려고 시도하고 있습니다.

사용 raw_input()와 코드가 잘 실행됩니다. 파이썬 2.7에 input()와 오류에

자세한 내용은 여기에 설명되어 있습니다 - Why input() gives an error when I just press enter?

관련 문제