[Python] 입력한 숫자들의 총합을 계산하는 계산기 만들기

해당 포스트에서는 Python에서 사용자가 원하는 개수의 숫자들을 입력받아 총합을 계산해 주는 방법을 설명합니다.

1. 배경

네이버 지식인 활동을 하면서 아래와 같은 1:1 질문을 받게되었고 답변을 좀 더 자세히 남기기 위해 포스팅을 작성하게 되었습니다.

2. 질문

파이썬 코딩과제 때문에 질문드립니다. 도와주세요 ㅠ

문제. 사용자가 입력한 숫자들을 더하는 프로그램을 작성하시오.

  • 사용자가 yes라고 답한 동안에만 숫자를 입력 받는다. (for문 또는 while문을 이용하라)
  • total을 0으로 설정한다.
  • Answer를 ‘yes’로 설정한다.
  • Answer가 ‘yes’인 동안에 다음을 반복한다.
  • 숫자를 입력 받는다.
  • 숫자를 total에 더한다.
  • ‘계속? (yes/no)’를 묻는다.
  • Total의 값을 출력한다.

3. 풀이

질문에 포함된 조건들을 반영하여 아래와 같은 구조로 코딩하였습니다.

구조 설계

  1. 사용자의 응답을 저장하는 Answer 변수를 생성하고 초기값을 'yes'로 할당
  2. 전체합을 계산하여 저장할 total 변수를 생성하고 초기값을 0으로 할당
  3. 사용자에게 입력을 받고 덧셈 계산을 위해 숫자형으로 변환하여 num 변수에 저장
  4. 사용자 반복 입력 여부를 확인하는 while문 생성
    1. yes일 경우, 숫자를 입력받아 total 변수와 합산
    2. no일 경우, 입력을 중단하고 total 변수의 총합을 계산
    3. yesno외의 입력, 에러 메시지와 함께 재입력 요청

소스 코드

if __name__ == "__main__": 

    Answer = 'yes'
    total = 0

    while Answer:

        num = int(input("\n숫자를 입력하세요 : "))
        total = total + num

        Answer = str(input("- 계속? (yes/no) : "))

        while (Answer not in ['yes', 'no']):
            print("[Error] 'yes' or 'no' 로 입력해 주세요")
            Answer = str(input("- 계속? (yes/no) : "))

        if Answer == 'no':
            break

    print("\n총합 : ", total)

결과 확인

위 코드 실행 후 초기 입력으로 3을 입력하였고, 계속 여부에 yes 및 추가 3 입력이 정상 적용되는 것을 확인하였습니다.
이후 계속 여부를 묻는 단계에서 아무것도 입력하지 않았고, 정상적인 에러메시지가 출력되는 것을 확인하였습니다.

마지막으로 no를 입력하여 계산이 정상적으로 종료되는 것을 확인하였습니다.

숫자를 입력하세요 :  3
- 계속? (yes/no) :  yes

숫자를 입력하세요 :  3
- 계속? (yes/no) :  
[Error] 'yes' or 'no' 로 입력해 주세요
- 계속? (yes/no) :  no

총합 :  6

4. 마무리

이번 포스트에서는 사용자가 입력하는 모든 숫자들을 입력받아 합산 결과를 출력하는 예제를 소개드렸습니다. 덧셈 외의 계산이 가능한 계산기를 만들어 보시는것도 프로그래밍 공부에 도움이 될 것 같습니다.

banner-request-analysis