2017-09-04 1 views
0

저는 프로그래밍에 익숙하지 않고 방금 Python 과정을 진행하기 시작했습니다. 나는 놓친 것이 있는지를 알기 위해 코스 자료와 온라인을 살펴 봤지만 실제로 아무것도 찾을 수는 없습니다.결과를 종료하고 인쇄하기 전에 입력을 받아서 요약하고 + 평균을 계산하는 챠트 봇을 만드는 방법은 무엇입니까?

나의 임무는 입력을 받고 입력을 요약하지만 평균을 계산하는 채팅 봇을 만드는 것입니다. 사용자가 "Done"을 작성한 다음 결과를 종료하고 인쇄 할 때까지 모든 입력을 받아야합니다.

나는이 실행하려고하면 : 내가 함께 int로 STR 또는 뭔가를 변환 할 필요가 수집 한 포럼 주변 검색에서

Traceback (most recent call last): 
    File "ex.py", line 46, in <module> 
    total + int(numbers) 
ValueError: invalid literal for int() with base 10: 'Done' 

:

total = 0 
amount = 0 
average = 0 
inp = input("Enter your number and press enter for each number. When you are finished write, Done:") 

while inp: 
    inp = input("Enter your numbers and press enter for each number. When you are finished write, Done:") 
    amount += 1 
    numbers = inp 
    total + int(numbers) 
    average = total/amount 
    if inp == "Done": 
     print("the sum is {0} and the average is {1}.". format(total, average)) 

내가이 오류를 그 줄? 해결해야 할 다른 것들이 있다면 알려 주시기 바랍니다!

답변

0

사용자가 "완료"를 입력하면 int(numbers) 라인이 "완료"를 정수로 변환하려고 시도하는 것 같습니다. 이에 대한 해결책은 조건부

if inp == "Done": print("the sum is {0} and the average is {1}.". format(total, average))

까지 높은 오른쪽 아래의 "INP ="할당을 이동하는 것입니다. 이렇게하면 ValueError가 방지됩니다. 또한 break 문을 추가하여 다른 사람이 "Done"을 입력하자마자 루프를 빠져 나올 수 있습니다.

그리고 마지막으로 전체 변수에 추가 할 때 = 기호가 누락되었다고 생각합니다.

나는 이것이 당신이 원하는 생각 :

while inp: 
    inp = input("Enter your numbers and press enter for each number. When you are finished write, Done:") 
    if inp == "Done": 
     print("the sum is {0} and the average is {1}.". format(total, average)) 
     break 
    amount += 1 
    numbers = inp 
    total += int(numbers) 
    average = total/amount 
관련 문제