3. 컴퓨터에 데이터를 담는 그릇 (변수)

【배우기】


1. 엔트리로 변수 이해하기

2. 파이선으로 변수 이해하기

1컴퓨터에 데이터를 담는 그릇 변수는 무엇일까요?

우리가 생활 속에서 필요한 정보를 기록하기 위해서는 어떻게 해야 할까? 수첩에 기록을 하거나, 공책에 글을 써서 보관하려고 할 것이다. 그리고 원하는 정보를 얻기 위해서는 보관해 놓았던 공책에 견출지로 표시해 놓거나 제목을 붙여서 정보를 습득할 것이다. 그렇다면 컴퓨터는 어떻게 정보를 저장할 수 있을까? 컴퓨터는 정보를 저장할 수 있는 메모리가 있다. 따라서 컴퓨터에 정보를 저장하기 위해서는 메모리를 활용할 수 있어야 한다. 그리고 메모리에서 원하는 정보를 습득하기 위해서는 견출지처럼 표시를 해 두었다가 원하는 정보를 찾아와서 사용할 수 있다.

그런데 좀 더 구체적으로 생각을 해보자면, 생활 속에서 원하는 음식을 만들어서 그릇을 담아 놓아본다고 생각하여 보자. 음식의 종류에 따라 그릇이 달라지고, 그릇에 놓인 음식에 따라 음식의 정보가 각각 다르다. 이처럼 컴퓨터에는 변수라는 것이 있다. 변수는 컴퓨터의 메모리를 사용하기 위한 그릇에 해당하며, 그릇의 이름이라고 볼 수 있다. 그리고 그 안에 들어갈 정보는 변수값이라고 하는데, 변수값에는 문자, 숫자 같은 다양한 자료가 들어갈 수 있다. 그리고 변수에는 하나의 자료만 저장할 수 있으며,다른 저장을 원할 경우에는 이전에 저장된 자료는 사라지게 된다.

이미지. 그릇에 문자, 숫자, 실수가 들어가있는 그림

변수에 대한 개념을 이해하였다면, 엔트리의 블록 프로그램과 파이썬으로 변수를 활용한 프로그램 코딩을 해보자.

2엔트리로 변수 이해하기

1. 엔트리로 자기소개하는 캐릭터 만들기

자기소개를 할 수 있는 캐릭터를 엔트리 블록 프로그램으로 만들어 보도록 하자. 우선은 자기소개를 생각해보면, 자기소개에 필요한 자기 정보가 있어야 하는데, 자기 정보를 저장하기 위해서는 정보를 저장할 수 있는 변수가 필요하다. 따라서 간단하게 캐릭터의 이름과 집 주소만을 정보로 입력받아 변수에 값을 저장하고, 저장된 변수의 값을 불러와서 자기소개를 할 수 있도록 만들어 보도록 하자.

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

가. 오브젝트 추가

1
이미지. 놀이터 배경 오브젝트 그림
배경으로 놀이터 오브젝트를 추가 한다.
2
이미지. 엔트리 봇 오브젝트 그림
자기소개를 할 수 있는 “좋아 엔트리봇”의 오브젝트를 추가한다. 이 오브젝트는 자기소개의 정보를 입력 받고, 출력할 수 있도록 한다.

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

이번 엔트리 블록 코딩은 변수에 대한 이해를 하고, 변수를 활용한 프로그램 코딩 방법이다. 따라서 변수를 활용하기 위해서 변수를 만드는 방법을 알아보고, 변수에 값을 저장하는 방법과 저장된 변수값을 출력하는 방법을 살펴보며, 블록 코딩하여 보자.

1
이미지. 오브젝트의 속성탭의 스크린샷. 변수 이름이 address와 name이 적혀 있다.

순번 2 오브젝트를 클릭

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

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

2
이미지. 블록들 이미지. 시작하기 버튼을 클릭했을 때 블록, 캐릭터 이름을 입력하세요.를 묻고 대답 기다리기 블록, name을 대답로 정하기 블록 캐릭터가 사는 곳을 입력하세요를 묻고 대답 기다리기 블록 address를 대답로 정하기 블록이 연결되어 있다.

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

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “캐릭터 이름을 입력하세요.”변경

블록탭-[name를 10 정하기]-“10”을 블록 대답으로 변경

블록탭-[자료]-[안녕!을(를) 묻고 대답 기다리기]-“안녕!”을 “캐릭터가 사는 곳을 입력하세요.”변경

블록탭-[address를 10 정하기]-“10”을 블록 대답으로 변경

3
이미지. 블록의 스크린샷. 나의 이름은 + name값 + 입니다 를 2초 동안 말하기 블록, 저의 집은 + address값 + 10을 2초동안 말하기 블록이 연결되어 있다.

블록탭-[생김새]-[“안녕”을 4초 동안 말하기]-[계산]-[10+10]-[10+10]-[자료]-[name 값]-10+10을 중첩한 후 10을 “나의 이름은”으로 변경, 가운데 10을 “name값”으로 변경, 마지막 10을 “입니다”로 변경한 후, “안녕” 자리에 블록 교체

블록탭-[생김새]-[“안녕”을 4초 동안 말하기]-[계산]-[10+10]-[10+10]-[자료]-[address 값]-10+10을 중첩한 후 10을 “저의 집은”으로 변경, 가운데 10을 “address 값”으로 변경, 마지막 10을 “입니다”로 변경한 후, “안녕” 자리에 블록 교체

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

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

이미지. 자기소개하는 캐릭터 동영상의 스크린샷

실행 결과를 살펴보면, 가장 먼저 변수에 값을 입력 받을 수 있도록 되어 있다. 따라서 캐릭터의 이름을 먼저 입력 받고, 집 주소를 그다음에 입력 받을 수 있도록 하였다. 그리고 입력된 정보는 각각의 변수의 값에 저장되며, 저장된 값은 사용자가 출력을 원할 때, 변수의 값을 출력하여 화면에 보여주게 된다.따라서 변수에 자기소개 정보의 값이 저장되어 있음으로써 캐릭터가 자기소개를 할 수 있게 된 것이다.

3파이선으로 변수 이해하기

1. 파이선으로 자기소개하는 캐릭터 만들기

엔트리에서 자기소개하는 캐릭터 만들기 프로그램을 파이선으로 변경해서 프로그램 코딩하여 보도록 하겠다. 하지만 엔트리와 파이선에서 변수를 사용하는 방법에 있어서 차이점이 있다. 엔트리에서는 변수를 속성에서 클릭한 후 단순히 이름을 설정하고, 선언하여 사용하였다면, 파이선에서는 선언하는 방법에서부터 차이가 있다. 예를 들어 파이선에서는 정수형만을 담을 수 있는 변수, 텍스트만을 담을 수 있는 변수라고 변수 앞에 특징에 맞춰 선언을 한 후 변수를 사용할 수 있으며, 각각의 특성에 따라 변수에 변수 값을 넣을 수가 있다. 또한 변수의 선언에 있어서도 일정한 규칙이 필요하다. 따라서 이러한 변수의 특성을 생각해보며, 파이선 프로그램 코딩으로 자기소개하는 캐릭터 프로그램을 만들어 보자.

TIP - 변수

변수에는 각각의 자료형이 존재하는데, 정수는 int, 실수는 float, 판단은 bool 등이 있다. 따라서 변수 앞에 먼저 선언하여, 변수를 특징 지어 사용할 수 있다. 또한 이러한 자료형 이외에 군집/컨테이너 형태의 자료형으로써 문자열의 str, 리스트의 list, 튜플의 tuple, 집합의 set, 사전의 dic 등이 있다. 하지만 기초적 단계에서는 정수와 실수 그리고 문자열 정도만을 사용하고 있다. 그리고 변수를 선언함에 있어서 몇 가지 지켜져야 하는 변수 선언 규칙이 있는데, 첫 번째, 변수를 선언할 때, 문자, 숫자, 언더바(_)를 포함할 수 있다. 두 번째, 변수의 시작이 숫자여서는 안 된다. 세 번째, 변수의 선언에 있어 정확하게 대문자와 소문자를 구별해서 사용하여야 한다. 그리고 마지막으로 네 번째, 파이선에서 사용하는 예약어(True, False, and, or, not)는 변수의 이름으로 사용할 수 없다.

가. 파이선 프로그램 코딩

파이선으로 자기소개하는 캐릭터 프로그램의 전체 코딩은 아래와 같은데, 전체적 코딩을 살펴보면,변수를 선언하는 방법에서부터 프로그램이 시작된다. 그리고 문자형 데이터를 변수로 선언하고 초기화하기 위해서 변수 이름에 변수값으로 빈칸을 넣어 초기화하였다. 그리고 엔트리 블록 코딩과 비슷한 방법으로 자기소개에 필요한 정보를 입력받을 수 있도록 하였고, 입력받아 저장된 정보를 다시 출력하여 사용자에게 보일 수 있도록 하였다. 그렇다면 전체적인 파이선 프로그램 코딩 내용을 살펴보고, 문자형 변수를 사용하여 자기소개하는 캐릭터 프로그램이 어떻게 코딩 되었는지 학습하여 보도록 하자

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

import time


name=””

address=””



name=input(“캐릭터 이름을 입력하세요: ”)

address=input(“캐릭터가 사는 곳을 입력하세요: ”)



print(“나의 이름은 “+name+” 입니다.”)



print(“저의 집은 “+address+” 입니다.”)

전체적인 프로그램 코딩 내용을 살펴보면, 변수의 선언에서부터 프로그램이 시작된다고 볼 수 있는데, “ name=“” ”와 “address “” ”이 변수의 선언 부분에 해당한다. 그리고 선언된 변수에 값을 입력받을 수 있도록 input( ) 함수가 사용되었으며, 저장된 변수의 값을 불러서 사용할 수 있도록 print( ) 함수가 사용되었다. 따라서 변수에 값을 저장 받고, 저장된 값은 다시 출력하여 보이도록 한 것이다. 전체적인 내용을 이해하였다면, 아래에서 세부적으로 프로그램 코딩의 내용을 학습하여 보도록 하자.

import time


name=””

address=””



이미지. 순서도 그림. 시작, 다음 화살표, name= '', 다음화살표, address=''

이 부분은 변수의 선언 부분에 해당하는데, 변수의 이름은 name과 address로서, 두 가지 변수가 선언이 되었다. 변수의 종류는 문자를 받을 수 있는 문자열 형태의 변수로써 문자만을 변수값으로 저장할 수 있다. 그리고 변수에 “” 값을 넣었는데, 이러한 이유는 변수의 값을 초기화하여, 변수의 값을 비워놓기 위해서 대입한 내용으로써, 초기화를 하지 않고 선언을 할 수 있지만, 이렇게 된 경우에는 문자열이라는 선언을 변수 앞에 넣어야 한다. 따라서 자기소개를 위한 이름과 주소를 문자열 형태로 변수값에 저장하기 위해서 변수는 문자열로 두 개가 선언되었다.

name=input(“캐릭터 이름을 입력하세요: ”)

address=input(“캐릭터가 사는 곳을 입력하세요: ”)



이미지. 순서도 그램. name=input('캐릭터 이름을 입력하세요:') 다음 화살표, address=input('캐릭터가 사는 곳을 입력하세요:')

프로그램 코딩에서 이 부분은 변수에 변수의 값을 입력하는 부분이다. 따라서 input( ) 함수가 사용되었다. 그래서 첫 번째 “name=input(“캐릭터 이름을 입력하세요: ”)”의 프로그램 코딩은 name 변수에 입력 받은 문자열을 저장하라는 프로그램 코딩이다. 이때에 어떠한 내용을 입력해야 할지에 대해서 사용자에게 표현해줘야 하므로 “캐릭터 이름을 입력하세요 : ”라는 문구를 괄호 안에 넣어준 것이다. 그래서 컴퓨터에는 “캐릭터 이름을 입력하세요 : ”라고 출력이 된 후, 커서가 깜빡이게 되는데, 이때 값을입력하여 넣어 준 후, 엔터키를 누르면 된다. 그리고 이와 같은 방법으로 “address=input(“캐릭터가 사는 곳을 입력하세요: ”)”에서도 input( ) 함수를 통해서 변수에 저장할 변수의 값을 입력받게 되는데, 여기에서 address 변수에 저장되어야 하는 내용을 사용자에게 알려줄 수 있도록 “캐릭터가 사는 곳을 입력하세요:”을 input( ) 함수 괄호 안에 넣어 화면에 출력한 후, 값을 입력받을 수 있도록 하였다.

print(“나의 이름은 “+name+” 입니다.”)



print(“저의 집은 “+address+” 입니다.”)



이미지. 순서도 그림, name 다음 화살표 address.

이 부분은 프로그램의 마지막 부분으로써 저장된 변수값을 변수를 활용하여 출력해주는 프로그램 코딩으로써 print( ) 함수가 사용되었다. 우선은 이름을 출력하기 위해서 print( ) 함수 안에 “나의 이름은.“+name +” 입니다.”을 넣었는데, 사용하는 코딩 방법을 보면, 처음 “나의 이름은”은 그대로 출력되게 되며, + 기호로 문자를 합하여 출력할 수 있게 된다. 그리고 그 다음으로 “name” 변수에 저장된 값을 출력하고, 다시 + 기호로 문자를 합한 후 “입니다.”를 출력하게 된다. 따라서 출력에 예를 보면, “나의 이름은 “변수의 값”입니다.”로 출력될 수 있다. 그다음으로는 집 주소를 출력하는 프로그램 코딩으로써 앞에서와 같이 print( ) 함수가 사용되었다. 그리고 같은 방법으로 print( ) 함수의 괄호 안에 “저의 집은 “+address+” 입니다.”를 넣었는데, 처음 부분의 “저의 집은” 그대로 출력되고, 같은 방법으로 문자열을 더하고, 변수에 저장된 값을 address에서 출력해주고, 다시 문자열인 “입니다.”를 합하여 전체 문장을 출력하게 된다. 따라서 “저의 집은 “변수의 값”입니다.”로 출력되게 된다. 그리고 프로그램은 끝부분에 도달하게 되고, 프로그램을 종료하게 된다.

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

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

이미지. 파이선으로 자기소개하는 프로그램 동영상의 스크린샷

실행 결과를 보면, 처음 시작은 “캐릭터 이름을 입력하세요: ”라고 출력되고, 대기 상태에 놓여 있다. 그리고 그다음으로는 캐릭터의 이름을 입력한다. 입력이 끝나면, 다시 “캐릭터가 사는 곳을 입력하세요:”라는 문구가 출력되고 입력 대기 상태에 있게 된다. 따라서 입력을 모두 끝내고 나면, 다음으로 캐릭터의 이름이 먼저 출력되고, 다음으로 집 주소가 출력되게 된다.

생각해보기

1) 변수에 사물 이름을 넣고, 변수를 출력되도록 해 보자.

2) 변수에 가족 이름을 입력하고, 변수를 출력되도록 해 보자..

3) 변수에 특정 숫자를 입력하고, 변수를 출력되도록 해 보자.