5. 요리 조리 따져본 조건, 당신의 선택은

【배우기】


1. 엔트리로 조건과 선택 이해하기

2. 파이선으로 조건과 선택 이해하기

1조건과 선택이란 무엇일까요?

순차적인 흐름에 따라 프로그램이 실행될 때, 일정한 조건이나 선택을 통해서 실행을 하여야 하는 경우가 있다. 예를 들어 명작 동화 알라딘을 생각해 보면, 알라딘에서 램프의 요정 지니는 세 가지 소원을 들어준다고 하자. 그리고 알라딘은 세 가지 소원을 말하게 되는데, 첫 번째, 두 번째, 세 번째의 소원을 알라딘이 생각하여 선택하게 된다. 이러한 동화적 내용을 컴퓨터에 적용하여 본다면, 컴퓨터에서는 조건에 따른 선택적 구조를 생각할 수 있게 된다. 따라서 지니가 컴퓨터라고 가정하고, 알라딘이 첫 번째 소원을 생각하며, 조건에 알맞게 첫 번째 소원을 선택했을 경우에 컴퓨터인 지니는 첫 번째 소원의 선택에 대한 내용을 실행하여 결과를 가져올 수 있다.

이미지. 알라딘에서 램프의 요정이 세가지 소원에 대해 말하고 있는 그림

그리고 만약 첫 번째 소원이 끝나고, 다시 두 번째 소원을 생각하였다면, 조건에 알맞게 두 번째 소원이 선택되며, 컴퓨터인 지니는 두 번째 소원의 선택에 따라 소원을 실행하고, 결과를 가져올 수 있도록 한다.

또 다른 예로 자판기를 이용하는 방법을 생각해 보자. 자판기를 사용할 사용자는 천원이라는 금액을 가지고 있으며, 음료수는 콜라가 1,000원 사이다는 2,000원 환타는 3,000원이라고 가정한다면, 사용자는 우선 천원이라는 금액을 자판기에 넣을 것이다. 자판기에서는 1,000원이라는 조건에 따라 금액에 알맞은 콜라만을 선택할 수 있으며, 사용자는 콜라를 선택하여 자판기에 나오는 콜라를 가질 수 있을 것이다. 이처럼 모든 컴퓨터 프로그램에 따라 일정한 조건과 조건에 따른 선택적 구조가 반드시 필요한 경우가 있다. 또한 이러한 조건은 조건에서 사용되는 연산자가 있는데, 수학적 표현이 조건을 만들어 준다. 따라서 연산자를 사용하여 프로그램에 알맞은 조건을 만들어서 사용자가 선택할 수 있는 것이 조건과 선택이라고 할 수 있다.

2엔트리로 조건과 선택 이해하기

1. 엔트리로 사칙연산 계산기 만들기

엔트리로 사칙연산 계산기를 블록 프로그램으로 만들어 보려고 한다. 사칙연산은 덧셈, 뺄셈, 나눗셈,곱셈으로 구성되어 있는데, 사용자가 원하는 계산을 하기 위해서는 이 중에 하나를 선택하여야 한다. 따라서 조건을 구성하고, 조건에 따른 선택이 가능한 블록 프로그램 코딩이 필요하다. 따라서 엔트리에서 조건에 해당하는 계산 블록과 만약 “” 이라면을 활용한 프로그램 코딩이 사용된다. 따라서 사칙연산 계산기를 프로그램 할 때 조건과 선택에 대해서 생각하며 프로그램을 만들어 보도록 하자.

2단원 2차시의 지체장애 학생을 위한 컴퓨터 환경 만들기의 PC 태블릿 모드 사용법을 참고하여 터치모니터와 함께 사용해보자.

가. 오브젝트 추가

1
이미지. 교실 배경 오브젝트 그림
배경으로 교실 오브젝트를 추가한다.
2
이미지. 더하기 오브젝트 그림
배경으로 더하기 오브젝트를 추가한다.
3
이미지. 빼기 오브젝트 그림
배경으로 빼기 오브젝트를 추가한다.
4
이미지. 나누기 오브젝트 그림
배경으로 나누기 오브젝트를 추가한다.
5
이미지. 곱하기 오브젝트 그림
배경으로 곱하기 오브젝트를 추가한다.
6
이미지. 안경쓴 학생(2) 오브젝트 그림
캐릭터로 안경 쓴 학생을 오브젝트로 추가하고, 사칙연산에 관한 블록 코딩으로 사칙연산에 모든 입력 및 출력이 이루어질 수 있도록 한다.

나. 오브젝트에 엔트리 블록 코딩

1
이미지. 오브젝트의 속성탭의 스크린샷. 변수 이름이 choice, result, second, first 가 적혀 있다.

속성탭-[변수 추가하기]-[변수이름: first]-확인

속성탭-[변수 추가하기]-[변수이름: second]-확인

속성탭-[변수 추가하기]-[변수이름: result]-확인

속성탭-[변수 추가하기]-[변수이름: choice]-확인

2
이미지. 블록들 이미지. 시작하기 버튼을 클릭했을 때 블록, 사칙연산을 해봐요를 2초동안 말하기 블록, choice 값 < 5인동안 반복하기 블록, 원하는 사칙연산을 선택하세요를 2초동안 말하기 블록, 1. 덧셈, 2.뺄셈, 3.나눗셈, 4.곱셈, 5.끝내기를 묻고 대답 기다리기 블록, choice를 대답으로 정하기블록 이 연결되어 있다.

순번 6 오브젝트를 클릭

블록탭-[시작]-[시작하기 버튼을 클릭했을 때]

블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 “사칙연산을 해봐요.” 변경

블록탭-[흐름]-[참인 동안 반복하기]-블록 탭-[판단]-[10<10]-첫 번째 10은 자료에서 choice 값을 넣고, 두 번째 10은 5로 변경한 후, “참”부분에 삽입

블록탭-[자료]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 “원하는 사칙연산을 선택하세요.”변경, 4초를 2초로 변경

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 끝내기” 변경

블록탭-[자료]-[choice를 10로 정하기]-[대답]-대답을 10에 대입

3
이미지. 블록들 이미지. 만일 choice값 =1 이라면 블록이 result를 0로 정하기 블록, 첫번째 수 입력을 묻고 대답 기다리기 블록, first를 대답으로 정하기 블록, 두번째 수를 묻고 대답 기다리기 블록, second를 대답으로 정하기 블록, result를 first 값 + second 값으로 정하기 블록, 정답은 +result 값+입니다를 3초동안 말하기 블록과 연결되어 있다.

블록탭-[흐름]-[만일 참이라면]-블록탭-[판단]-[10=10]-첫 번째 10은 자료에서 choice 값을 넣고, 두 번째 10은 1로 변경한 후, “참” 부분에 삽입

블록탭-[result를 10로 정하기]-10을 0으로 변경

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “첫 번째 수 입력” 변경

블록탭-[자료]-[first를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “두 번째 수 입력” 변경

블록탭-[자료]-[second를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[result를 10로 정하기]-[계산]-[10+10]-첫 번째 10은 first 값으로 두 번째 10은 second값으로 변경

블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 계산에서 10+10을 두 번 가져와서 중첩한 후, 첫 번째 10은 “정답은” 으로 변경하고, 두 번째 10은 result값으로 변경한 후 마지막 10을 “입니다.”로 변경

4
이미지. 블록들 이미지. 시작하기 버튼을 클릭했을 때 블록,  만일 choice값 =2 이라면 블록이 result를 0로 정하기 블록, 첫번째 수 입력을 묻고 대답 기다리기 블록, first를 대답으로 정하기 블록, 두번째 수를 묻고 대답 기다리기 블록, second를 대답으로 정하기 블록, result를 first 값 + second 값으로 정하기 블록, 정답은 +result 값+입니다를 3초동안 말하기 블록과 연결되어 있다.

블록탭-[흐름]-[만일 참이라면]-블록탭-[판단]-[10=10]-첫 번째 10은 자료에서 choice 값을 넣고, 두 번째 10은 2로 변경한 후, “참” 부분에 삽입

블록탭-[result를 10로 정하기]-10을 0으로 변경

블록탭-[자료]-[안녕!을(를)묻고 대답 기다리기]-“안녕!”을 “첫 번째 수 입력” 변경

블록탭-[자료]-[first를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[안녕!을(를)묻고 대답 기다리기]-“안녕!”을 “두 번째 수 입력” 변경

블록탭-[자료]-[second를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[result를 10로 정하기]-[계산]-[10-10]-첫 번째 10은 first값으로 두번째 10은 second값으로 변경

블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 계산에서 10+10을 두 번 가져와서 중첩한 후, 첫 번째 10은 “정답은” 으로 변경하고, 두 번째 10은 result 값으로 변경한 후 마지막 10을 “입니다.”로 변경

5
이미지. 블록들 이미지. 시작하기 버튼을 클릭했을 때 블록,  만일 choice값 =3 이라면 블록이 result를 0로 정하기 블록, 첫번째 수 입력을 묻고 대답 기다리기 블록, first를 대답으로 정하기 블록, 두번째 수를 묻고 대답 기다리기 블록, second를 대답으로 정하기 블록, result를 first 값 + second 값으로 정하기 블록, 정답은 +result 값+입니다를 3초동안 말하기 블록과 연결되어 있다.

블록탭-[흐름]-[만일 참이라면]-블록탭-[판단]-[10=10]-첫 번째 10은 자료에서 choice 값을 넣고, 두 번째 10은 3로 변경한 후, “참” 부분에 삽입

블록탭-[result를 10로 정하기]-10을 0으로 변경

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “첫 번째 수 입력”변경

블록탭-[자료]-[first를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[안녕!을(를)묻고 대답 기다리기]-“안녕!”을 “두 번째 수 입력” 변경

블록탭-[자료]-[second를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[result를 10로 정하기]-[계산]-[10/10]-첫 번째 10은 first 값으로 두번째 10은 second 값으로 변경

블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 계산에서 10+10을 두 번 가져와서 중첩한 후, 첫 번째 10은 “정답은” 으로 변경하고, 두 번째 10은 result 값으로 변경한 후 마지막 10을 “입니다.”로 변경

6
이미지. 블록들 이미지. 시작하기 버튼을 클릭했을 때 블록,  만일 choice값 =4 이라면 블록이 result를 0로 정하기 블록, 첫번째 수 입력을 묻고 대답 기다리기 블록, first를 대답으로 정하기 블록, 두번째 수를 묻고 대답 기다리기 블록, second를 대답으로 정하기 블록, result를 first 값 + second 값으로 정하기 블록, 정답은 +result 값+입니다를 3초동안 말하기 블록, 아니면 계산기 프로그램을 종료합니다를 말하기 블록과 연결되어 있다.

블록탭-[흐름]-[만일 참이라면, 아니면]-블록탭-[판단]-[10=10]-첫 번째 10은 자료에서 choice 값을 넣고, 두 번째 10은 4로 변경한 후, “참” 부분에 삽입

블록탭-[result를 10로 정하기]-10을 0으로 변경

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “첫 번째 수 입력” 변경

블록탭-[자료]-[first를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[second를 10로 정하기]-[대답]-대답을 10에 대입

블록탭-[자료]-[result를 10로 정하기]-[계산]-[10*10]-첫 번째 10은 first 값으로 두번째 10은 second 값으로 변경

블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 계산에서 10+10을 두 번 가져와서 중첩한 후, 첫 번째 10은 “정답은”으로 변경하고, 두 번째 10은 result 값으로변경한 후 마지막 10을 “입니다.”로 변경. 아니면-블록탭-[생김새]-[안녕!을(를) 4초 동안 말하기]-“안녕!”을 “계산기 프로그램을종료합니다”로 변경

다. 오브젝트에 엔트리 블록 코딩 실행 결과

엔트리 블록 코딩을 끝낸 후 실제적인 실행 결과를 확인해 보도록 하자. 사칙연산 계산기 프로그램 엔트리 블록 코딩의 결과는 아래와 같이 실행된다.

이미지.  사칙연산 계산기 프로그램 엔트리 블록 코딩의 동영상의 스크린샷

실행 결과를 살펴보면, “사칙연산을 해봐요.”가 출력되고 다음으로 “원하는 사칙 연산을 선택하세요.”와 “1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 끝내기” 가 출력되고, 사용자의 선택을 기다린다. 사용자가 사칙연산을 선택하면 선택에 따른 계산을 하는데 필요한 첫 번째 수와 두 번째 수를 입력받게 된다. 입력이 끝나면 계산의 결과를 출력해주고, 다시 처음으로 돌아간다. 다시 시작된 사칙연산 계산기는 다시 선택을 받게 되며, 사칙연산을 지속적으로 이어갈 수 있다. 하지만 프로그램을 끝내기 원한다면, 5를 선택하여 끝낼 수 있도록 되어 있는 프로그램이다.

3파이선으로 조건과 선택 이해하기

1.파이선으로 사칙연산 계산기 만들기

파이선으로 사칙연산하는 프로그램을 만들어 보도록 하자. 우선 사칙연산을 할 때, 앞에서 배웠던 반복구조 안에 조건과 선택을 넣어 사칙연산이 지속적으로 가능하도록 계산기를 만들어 보려고 한다. 따라서 사칙연산은 덧셈, 뺄셈, 나눗셈, 곱셈이 있는데, 이것은 사용자가 원하는 선택에 따라 조건에 맞춰 반복적으로 프로그램이 실행될 수 있도록 한다. 그렇다면 파이선으로 사칙연산 계산기를 프로그램 코딩하여 보도록 하자.

화상키보드 사용법은 2단원 2차시의 지체장애 학생을 위한 컴퓨터 환경 만들기를 참조하자.

TIP - 조건에서 산술 연산자와 비교 연산자

산술연산자는 +, -, /, *, %, ** 등이 있다. 따라서 산술식에 따라 숫자를 더하거나 빼고, 곱하거나 나눌 수 있다. 또한 %는 나머지를 구할 때 사용하며, **의 연산자는 제곱을 할 때 사용한다.

비교연산자는 >, <, >=, <=, ==, != 등이 있는데, 대부분 값을 조건에 따라 비교할 때 사용되는데, >, >=는 크다와 크거나 같다이며, <, <=은 작거나와 작거나 같다이다. 그리고 ==은 같다라는 연산자고 !=의 같지 않다라는 연산자이다.

TIP - 선택(if 문)

선택에 있어서는 if, else 문이 사용된다. if 문은 if <조건식> : <구문>, else: <구문>의 형태를 가지고 있으며, 조건식에 따라 구문이 선택되어 실행하게 되는데, 이때 중요하게 생각해야 하는 점은 동일한 들여쓰기 필요하다. 또한 조건이 늘어나는 경우에는 if, elif, else 문을 사용하는데 사용의 예는 아래와 같다.

if 조건:

명령1: if 뒤에 흐름을 제어할 조건이 오게 되며, 그 뒤에 콜론(:)을 붙여준다.

명령2: if 조건 콜론(:) 뒤에 들여 쓰기로 이루어진 코드블록이 온다. if 문 뒤의 명령은 if 문의 조건이 True일 경우 실행된다.

elif 조건: elif는 else if의 약자로 앞에 반드시 if가 있어야 한다. elif가 있을 경우 첫 번째 if 문을 확인해 조건을 충족하면 뒤의 elif는 확인하지 않고 넘어가서 효율적입니다.

명령3

명령4

else : if 문의 조건이 False인 경우 else 콜론(:) 뒤의 명령이 실행된다.

명령5

명령6

가. 파이선 프로그램 코딩

파이선으로 사칙연산 계산기 프로그램을 작성한 전체 코딩은 아래의 내용으로써, 전체적 코딩을 살펴보면, 사칙연산을 선택하는 변수와 선택에 따른 사칙연산에 필요한 첫 번째와 두 번째 숫자를 입력받을 변수가 있다. 그리고 그 결과 값을 입력받을 변수가 마지막으로 선언되어 있다. 따라서 while 문에서 사칙연산을 반복해주면서, 그 안에 if 문을 넣어서 사칙연산을 선택하고 계산을 하여 값을 출력할 수 있도록 하였다. 그렇다면 전체적인 파이선 프로그램 코딩 내용을 살펴보고, 사칙연산 계산기 프로그램이 어떻게 코딩 되었는지 학습하여 보도록 하자.

first=0

second=0

result=0

choice=0



print(“사칙연산을 해봐요.”)



while (choice<5):

                print(“원하는 사칙연산을 선택하세요.”)

                print(“1. 덧셈 2. 뺄셈 3. 나눗셈 4. 곱셈 5. 끝내기”)

                choice=int(input(“선택: ”))


                if(choice==1):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=int(first+second)

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==2):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first-second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==3):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first/second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==4):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first*second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                else:

                  print(“계산기 프로그램을 종료한다.”)


전체적인 프로그램 코딩 내용을 살펴보면, 변수의 선언은 first, second, result, choice 이렇게 네 가지로 선언되어 있다. 그리고 while 문은 5 미만인 경우에만 반복할 수 있도록 하였다. 그리고 while 문 안에는 if 문이 들어가서 조건에 따라 선택하여 선택된 구문을 실행하도록 하였는데, 1은 덧셈 2는 뺄셈 3은 나눗셈 4는 곱셈을 할 수 있도록 하였다. 전체적인 내용을 이해하였다면, 아래에서 세부적으로 프로그램 코딩의 내용을 학습하여 보도록 하자.

first=0

second=0

result=0

choice=0

이미지. 순서도 그림, 시작, 다음 화살표, first,다음화살표, second, 다음화살표, result, 다음화살표 choice

첫 부분은 변수의 선언으로써, 변수 4개가 선언되었으며, 이 변수는 int형의 자료형으로써 초기화되어 있다. 따라서 first와 second의 변수는 사칙연산에 필요한 첫 번째와 두 번째의 값을 입력받기 위한 변수이다. 그리고 result는 사칙연산이 끝난 값을 입력받기 위한 변수이다. 마지막으로 choice는 1, 2, 3, 4에 따라 사칙연산을 선택하기 위해서 필요한 변수로써 정수 값을 입력 는다.

while (choice<5):

                print(“원하는 사칙연산을 선택하세요.”)

                print(“1. 덧셈 2. 뺄셈 3. 나눗셈 4. 곱셈 5. 끝내기”)

                choice=int(input(“선택: ”))


                if(choice==1):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=int(first+second)

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==2):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first-second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==3):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first/second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                elif(choice==4):

                  first=int(input(“첫 번째 수 입력: ”))

                  second=int(input(“두 번째 수 입력: ”))

                  result=first*second

                  print(“정답은”, result, “입니다.”)

                  choice=0


                else:

                  print(“계산기 프로그램을 종료한다.”)

이미지. 순서도 그림. print('사칙연산을 해봐요'), (choice<5)? 가 no 면 END, Yes 면 print('원하는 사칙연산을 선택하세요.'), print('1.덧셈, 2. 뺄셈, 3. 나눗셈, 4, 곱셈, 5. 끝내기), choice=int(input('선택:')), (choice == 1)이 yes면 first=int('input ('첫번째 수 입력:')), second= int(input('두번째 수 입력:')), result(int(first+second), print('정답은, result,'입니다')) choice=0. 그리고 처음으로 돌아간다. (choice==1)이 no 면 choice==2 가 yes면 first=int('input ('첫번째 수 입력:')), second= int(input('두번째 수 입력:')), result(int(first-second), print('정답은, result,'입니다')) choice=0. 그리고 처음으로 돌아간다.  choice==2 가 no면 choice==3. choice==3 이 yes면 first=int('input ('첫번째 수 입력:')), second= int(input('두번째 수 입력:')), result(int(first/second), print('정답은, result,'입니다')) choice=0. 그리고 처음으로 돌아간다.  choice==3 이 no면, choice==5/ choice==4가 yes면 first=int('input ('첫번째 수 입력:')), second= int(input('두번째 수 입력:')), result(int(first*second), print('정답은, result,'입니다')) choice=0. 그리고 처음으로 돌아간다. choice==4가 no면 print('계산기 프로그램을 종료한다'), 그리고 처음으로 돌아간다.

이 부분부터가 실제적인 사칙연산 계산기 부분으로 볼 수 있다. 가장 먼저 반복 구조인 while 문이 시작되는데, while(choice <5): 은 choice의 초기 값은 0이며, 0은 5보다 작아서 참이 되어서, 다음 구문을 실행할 수 있게 된다. 따라서 choice의 값이 5 이상의 값을 받으면, 프로그램은 종료되게 된다. 그다음에는 “print(“원하는 사칙연산을 선택하세요.”), print(“1. 덧셈 2. 뺄셈 3. 나눗셈 4. 곱셈 5. 끝내기”) 가 실행되게 되는데, print( ) 함수의 내용을 그대로 출력하게 되며, 다음 프로그램 코딩에서 선택할 수 있도록 도움을 주는 내용을 가지고 있다. 사칙연산에 대한 사전 준비가 끝났다면,choice=int(input(“선택: ”))를 통해서 값을 입력받게 되는데, 여기서 choice 변수는 정수의 자료형(int)으로 사칙연산에 대한 선택의 값을 입력받게 된다. 따라서 choice 변수에 저장된 값은 어떠한 사칙연산을 실행하지에 대한 선택으로 choice 변수에 들어가 있는 정수의 값에 따라 다음의 if 문이 실행되게 된다. 만약 choice의 값이 1이라면, “if(choice==1)”의 조건에 알맞음으로 덧셈을 계산하게 된다. 따라서 그다음 구문인 “first=int(input(“첫 번째 수 입력: ”))”와 “second=int(input(“두 번째 수 입력: ”))”을 실행하게 되는데, 이것은 덧셈을 계산할 두 수를 입력받는 것이다. 두 수를 입력받았다면, 다음으로 산술 연산자를 통해서 값을 계산하여야 하는데, “result=int(first+second)”의 프로그램 코딩이 산술 연산자를 통한 계산에 해당하다. 이 부분을 살펴보면, first와 second의 변수는 계산하려는 첫번째 수와 두 번째 수가 저장되어 있는데, 이것을 + 산술연산자로 덧셈하여 int를 활용해서 정수로 바꿔준 후, result 변수에 결과 값이 저장된다. 그리고 마지막으로 “print(“정답은”, result, “입니다.”)” 을 통해서 결과 값을 출력해준다. 그리고 다음으로 중요한 것은 지속적인 반복을 위해서 “choice=0”를 통해서 choice 변수의 값을 초기화해준다. 이렇게 한 번의 반복이 끝나고, 다시 반복을 위해서 “while(choice<5)”를 실행하게 된다. 여기서 choice는 초기화되어 있음으로 다음의 프로그램 코딩을 반복한다.

따라서 다시 print( ) 함수에 있는 내용을 출력하고, “choice=int(input(“선택: ”))”를 통해서 선택하고 싶은 값을 받게 된다. 여기서 만약 2를 넣었다면, 조건문에 있어서 “if(choice==2):”의 조건이 맞음으로 이 안에 있는 구문을 실행하게 된다. 따라서 뺄셈을 할 수 있게 되는데, 여기서도 덧셈과 마찬가지로 첫 번째와 두 번째의 값을 first 변수와 second의 변수에 각각 입력받게 된다. 그리고 “result=first-second”에서 첫 번째와 두 번째에 입력된 수는 뺄셈하여, result의 변수에 입력되게 된다. 또한 덧셈과 같은 방법으로 결과 값의 “print(“정답은”, result, “입니다.”)” 출력되며, “choice=0”으로 초기화되어 다시 반복할 수 있도록 해준다. 이와 같은 방법으로 choice의 값이 3인 경우에는 나눗셈이 실행되며, 4인 경우에는 곱셈하여 값을 출력해주게 된다. 그리고 프로그램을 끝내고 싶은 경우에는 choice에 5 이상의 수를 입력하면 되는데, 만약 choice 값이 5 이상인 경우에는 “else:”가 실행되며,“print(“계산기 프로그램을 종료한다.”)”의 구문이 실행되면서 프로그램이 종료되게 된다.

나. 파이선 프로그램 코딩 결과

파이선으로 사칙연산 계산기 프로그램을 완성하였다면, 프로그램을 실행하여 프로그램이 어떻게 입력받고 사칙연산하여 어떻게 출력하였는지 알아보도록 하자. 프로그램 실행 결과는 아래와 같다.

이미지. 파이선으로 사칙연산 계산기 프로그램 동영상의 스크린샷

실행 결과를 보면, “원하는 사칙연산을 선택하세요.”와 “1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈”이 출력되며, 다음으로 “선택:”이라는 문구와 함께 커서 깜빡이며, 입력을 기다린다. 입력된 값이 만약 4인 경우라면 곱셈을 하게 되며, 다음으로 “첫 번째 수 입력:”이라는 문구가 출력되며, 입력을 기다린다. 그리고 입력이 끝났다면, “두 번째 수 입력:”이라는 문구가 출력되고, 입력을 기다리고 있다. 입력이 모두 끝나면, 결과 값을 출력해준다. 그리고 다시 처음 부분이 같은 문구로 출력되며, 다시 선택을 기다리고 선택에 따라 다시 사칙연산하게 되며, 프로그램의 종료를 원하는 경우에는 선택에 5를 입력하여 프로그램을 종료하면 된다.

생각해보기

1) 가위바위보를 선택하고, 비교하여 승패를 출력되도록 해 보자.

2) 숫자를 입력하고, 높은 숫자가 출력되도록 해 보자.

3) 구구단 문제를 만든 후, 입력 값이 맞는지 확인하여, 정답을 출력되도록 해 보자.