2011-04-07 7 views
0

다음 코드는 주어진 입력 집합의 평균을 찾는 코드입니다.python에서 이상한 오류가 발생했습니다. 3.2

#!/usr/bin/env python3 
print("Enter some integers") 
count = 0 
total = 0 
while True: 
    line = input("integer: ") 
    if (line): 
     try: 
      number = int(line) 
     except ValueError as err: 
      print(err) 
      continue 
     total += number 
     count += 1 
     #print("Post",line) 
    else: 
     break 
if count: 
    print('Count is ',count ,'Total is ',total,'Mean is ',total/count) 

그러나 프로그램을 실행할 때마다 번호를 입력해도 짝수 번호 입력으로 인해 오류가 발생합니다. 다음은 샘플 출력입니다.

Enter some integers 
integer: 4 
integer: 5 
invalid literal for int() with base 10: 'integer: 5' 
integer: 5 
integer: 6 
invalid literal for int() with base 10: 'integer: 6' 
integer: 
Count is 2 Total is 9 Mean is 4.5 

그러나 else : 문 앞에 줄의 주석을 제거하면이 코드가 제대로 작동합니다. 아무도 여기서 무슨 일이 일어나는지 말해 줄 수 있니?

미리 감사드립니다.

+3

이 코드가이 오류를 생성하는 코드인지 확인하십시오. – hop

+1

시도해보고 PEBKAC를 잡을 수 있습니다. 제대로 작동하는 것 같습니다. 필자는 Python 3.2 (r32 : 88445, 2011 년 2 월 21 일, 01:55:53)에서 테스트했습니다. –

+0

코드를 테스트 해본 결과 작동합니다. – TheDude

답변

1

문제는 잘라 붙이기의 문제입니다.

'integer: 6' 
,369 :

라인

number = int(line) 

invalid literal for int() with base 10: 'integer: 6' 

이것은 광고

line = input("integer: ") 

입력을 받았다 가져야한다는 것을 의미 오류를 생성

그리고 이것이 유일한 방법은 입력 한 것입니다. 분명히 유형에 "정수 : 6"을 사용하면 안됩니다. 그러므로 이것이 발생하는 유일한 이유는 복사 할 때 많이 알게되지 않고 이전 입력을 잘라내어 붙인 것입니다. 이는 항상 저에게 일어나는 일입니다.

+0

감사합니다 모두 IDE에서 문제가 발생한 것 같습니다 (Komodo Edit). 터미널에서 코드를 실행했는데 성공했습니다. – pogo

관련 문제