2013-09-29 4 views
-2

마지막 문제는 평균을 소수점 첫째 자리로 부동입니다.한 자릿수로 반올림하지 않습니다.

total = 0.0 
count = 0 
data = float(input("Enter a number or enter to quit: ")) 
while data != "": 
    count += 1 
    number = float(data) 
    total += number 
    data = float(input("Enter a number or enter to quit: ")) 
    try: 
     data = int(data) 
    except ValueError: 
     pass 
    average = round(total)/count 
    if data == 999: 
     break 
    elif data >= 100: 
     print("error in value") 
    elif data <= 0: 
     print("error in value") 


print("These", count, "scores average as: ", round(average, 1)) 
+0

오류'unorderable 유형 : STR을()> = INT()'이의 제목과 일치하지 않습니다 질문, 해결책은 동일하지 않습니다. – SethMMorton

+0

'except '에'pass'를'break'로 바꾸면 사용자가'' ''를 입력 할 때 루프를 빠져 나옵니다. – SethMMorton

+0

그것은 기묘하게 패스와 함께 작동하지만, 1 십진수로 부동하지 않을 것이다 – user2825185

답변

1

input() 문자열이 아닌 정수를 반환 : AV-34.1

여기에 내 현재 코드입니다. 정수로 변환하려면 int()을 사용 파이썬 3에서

data = int(input("Enter a number or enter to quit: ")) 

, 당신은 따라서 오류, 문자열을 정수로 비교할 수 없습니다. 파이썬 2에서는 실제로 할 수 있습니다.

당신은 사용자가 빈 문자열을 입력하면 또한 확인하려는 경우, 당신은 할 수 있습니다 :

data = input("Enter a number or enter to quit: ") 
try: 
    data = int(data) 
except ValueError: 
    pass 
+0

도움이되었지만 입력을 중단하여 도움을받을 수 있습니까? – user2825185

+0

@ user2825185 다른 if 문 앞에 'if data ==' ''를 입력하십시오. – TerryA

관련 문제