[엔트리파이선]<3>문제 해결을 하려면 정보 저장부터

엔트리에서 입력과 출력은 어떤 모습으로 볼 수 있을까요. 엔트리파이선이나 다른 텍스트 언어에서 입출력이 어떻게 되는지 알아봅시다. 입출력이란 컴퓨터의 가장 기본 정보처리 과정입니다. 키보드나 마우스, 카메라, 조이스틱 등 다양한 인터페이스를 통해서 컴퓨터에 정보를 전달하는 게 입력입니다. 모니터, 프린트 등을 통해서 정보를 나타내는 게 출력입니다.

실행창과 콘솔창
<실행창과 콘솔창>

우리가 원하는 단어나 문장을 출력하기 위해서는 컴퓨터에 단어나 문장을 알려줘야 합니다. 이 때 필요한 게 입력입니다. 키보드나 마우스 혹은 터치패드 등을 이용해서 컴퓨터에게 정보를 입력하는 것이죠.

프로그램이 실행됐을 때 우리가 원하는 단어나 문장을 입력해 보도록 합시다. 출력이 'print'라면 입력을 위한 명령어도 있습니다. 엔트리파이선에서 입력을 위한 명령어는 'Entry.input()'입니다. 파이선은 'input()'을 사용합니다.

엔트리는 파이선과 다르게 오브젝트를 옮기거나 생김새를 달리하는 등 시각 변화를 주는 명령어가 많습니다. 이런 명령어는 파이선에서는 존재하지 않으며 모두 앞에 'Entry.'으로 시작하는 엔트리파이선만의 고유명령어라고 할 수 있습니다.

엔트리파이선 명령어 창에 엔트리 특징인 시작하기를 클릭했을 때에 해당되는 'def when_start():' 명령어를 먼저 넣고 간단하게 'input'만 입력합시다. 아래 명령어 중에서 'Entry.input()'을 선택해요. [그림1]처럼 괄호 안에 '이름이 뭐니?'를 입력해 봅시다.

[그림1] Entry.input() 선택해 이름이 뭐니? 입력하기
<[그림1] Entry.input() 선택해 이름이 뭐니? 입력하기>

하지만 오류가 나면서 [그림2] '문법오류'처럼 실행되지 않는 것을 볼 수 있죠. '이름이 뭐니?'라는 문장을 컴퓨터가 어떤 정보인지 알 수 없기 때문입니다. 컴퓨터가 이것이 다른 정보가 아닌 문장임을 알 수 있도록 따옴표(“”) 안에 넣어야 해요. 여기까지 프로그래밍이 됐다면 실행하고 결과를 살펴봅시다.

[그림2] 문법오류 예시와 파이선 코드 제대로 입력
<[그림2] 문법오류 예시와 파이선 코드 제대로 입력>

이제 컴퓨터에게 입력할 수 있는 준비는 다 끝났어요. 실행창에 자신 이름을 넣고 프로그램을 다시 실행해 콘솔창에도 이름을 입력해 봅시다. 입력한 이름은 [그림3]처럼 엔트리 실행 창에서 '대답'이라는 곳에, 콘솔 창에는 입력된 그대로 있는 것을 볼 수 있습니다. 아직 명령어를 쓰지 않았기 때문에 출력은 되지 않았지만 값은 저장돼 있는 상태입니다.

[그림3] 이름 입력 후 실행창·콘솔창 예시
<[그림3] 이름 입력 후 실행창·콘솔창 예시>

우리가 컴퓨터에 특정 정보를 저장하기 위해서 만들어야 하는 공간은 '변수'입니다. 엔트리는 입력된 값을 '대답'이라는 임시 변수에 먼저 저장하도록 설계됐습니다. 엔트리에서 만든 대답이라는 임시 변수도 있지만 우리가 원하는 변수를 만들어서 정보를 저장하고 출력해봅시다.

변수에는 원하는 이름을 붙여 안의 정보가 무엇인지 쉽게 알도록 만들 수 있습니다. 변수 하나에 정보 하나만 저장이 가능합니다. 다른 정보가 저장이 되면 그 전에 있던 정보는 지워지게 됩니다.

이제 변수를 만들어 봅시다. 우리가 '이름이 뭐니?'라는 질문을 했기 때문에 입력되는 정보는 이름이겠죠. 이런 데이터를 쉽게 확인해 프로그래밍하기 위해 변수도 '이름'으로 만들면 편리합니다. 엔트리파이선에서 변수는 항상 실행되는 명령어 전에 만들어줘야 해요.

[그림4] 변수 이름=0 입력하기
<[그림4] 변수 이름=0 입력하기>

[그림4]처럼 “이름=0”이라고 변수를 만들게 되면 컴퓨터에게 명령하게 됩니다. 먼저 “이름” 이라는 정보를 담을 수 있는 공간을 만들고, 이 공간 처음에는 0이라는 숫자 값을 저장해라고요.

이름이라는 변수가 만들어졌습니다. Entry.input(“이름이 뭐니?”) 명령어를 통해 입력된 값을 '이름'이라는 변수에 저장합시다. 임시로 저장돼 있는 '대답'이라는 변수는 'Entry.answer()'라는 명령어입니다. '이름 = Enrty.answer()'라는 명령어를 입력해주면 '이름'이라는 변수에 우리가 입력한 값을 저장할 수 있습니다. 실행 순서는 [그림5]와 같아요.

[그림5] 명령어 입력값 변수에 저장하기
<[그림5] 명령어 입력값 변수에 저장하기>

Entry.print() 명령어를 사용하면 출력할 수 있어요. 우리가 출력해야 하는 정보는 당연히 '이름' 변수에 저장된 값입니다. [그림6]과 같이 프로그래밍이 완료됐습니다. 실행해보고 입력한 이름이 잘 출력되는지 살펴봅시다.

[그림6] 프로그래밍 완료
<[그림6] 프로그래밍 완료>

입력에 사용된 명령어는 키보드로 원하는 정보를 입력할 수 있도록 해주는 Entry.input(), Entry.input(“안녕”)을 실행 했을 때 키보드를 통해 입력된 값이 임시로 저장되는 Entry.answer(), 실행창에 '대답' 임시변수를 숨기거나 보여주는 Entry.answer_view(“hide”) 등이 있습니다.

김슬기 안산선부초 교사

위방향 화살표