1강 / 20강
변수 — 이름표를 붙인 상자
모든 자료구조의 가장 작은 조상
거대한 창고를 상상해 보세요. 컴퓨터의 메모리가 바로 그 창고입니다.
여러분이 95라는 숫자를 창고 바닥에 그냥 툭 던져 놓으면 어떻게 될까요?
1초 뒤에 그 숫자를 다시 찾으러 갔을 때, 그게 어디 있는지 알 방법이 없습니다.
그래서 우리는 상자에 담고, 상자에 이름표를 붙입니다. 이 "이름표 붙은 상자"가 바로 변수(variable)예요.
자료구조(data structure)란 이 상자들을 어떤 모양으로 배치할 것인가에 대한 이야기입니다. 한 줄로 세울지, 위로 쌓을지, 나뭇가지처럼 뻗게 할지. 그 이야기를 시작하려면 먼저 상자 하나부터 확실히 알아야 합니다.
아래 셀의 ▶ 실행 버튼을 눌러 보세요. 코드를 직접 고쳐서 다시 실행해도 됩니다.
상자 3개를 만들고 내용물을 꺼내 봅니다.
Python
브라우저에서 실행
🎮 상자를 직접 만들어 보세요
이름표를 붙이고 값을 넣으면 창고에 상자가 생깁니다. 같은 이름표에 다른 값을 또 넣으면 어떻게 되는지 꼭 확인해 보세요. 그리고 학생 3명 관리해 보기를 누르면 왜 변수만으로는 힘든지 눈에 보입니다.
그런데… 문제가 생깁니다
학생이 한 명일 때는 상자 3개면 충분했습니다. 그런데 우리 반 학생이 30명이라면?
학생 3명 = 상자 6개. 30명이면 상자 60개입니다.
Python
브라우저에서 실행
이름표에도 규칙이 있습니다
아무 이름이나 붙일 수는 없어요. 위 위젯에서 2반점수처럼 숫자로 시작하는 이름을
넣어 보면 파이썬이 거절합니다.
- 숫자로 시작할 수 없습니다 —
1등✗ /등수1✓ - 공백을 쓸 수 없습니다 —
내 점수✗ /내_점수✓ - 파이썬이 이미 쓰는 낱말은 안 됩니다 —
if,for,class… - 한글도 됩니다. 이 강의에서는 이해를 돕기 위해 한글 이름을 자주 씁니다.
type() 은 상자 안 내용물의 종류를 알려 줍니다.
Python
브라우저에서 실행
🤔 확인 문제
변수를 가장 정확하게 설명한 것은?
해설 변수는 이름표(이름) + 상자(메모리) + 내용물(값 하나)입니다. 같은 이름표에 새 값을 넣으면 덮어써집니다 — 예전 값은 사라져요.
🤔 확인 문제
학생 30명의 점수를 변수만으로 관리할 때 가장 큰 문제는?
해설 개수 제한 때문이 아니라 다룰 방법이 없다는 것이 문제입니다.
점수1 … 점수30은 이름이 30개인 남남이라서, 컴퓨터는 이들이 한 무리라는 걸 모릅니다.