모든 프로그래밍 언어의 기초 문법에는 변수와 자료형에 대해 다룹니다. 오늘은 파이썬의 변수와 자료형에 대해 간단하게 알아보겠습니다. 30분이면 읽고 실습하고 이해하는 데 충분합니다. 가벼운 마음으로 쭉 읽어주세요.
목차
파이썬 기초 문법, 변수 이해하기
어떤 프로그래밍 언어를 사용하는지 관계없이 “변수”와 “자료형”은 꼭 알아야 합니다. 변수는 간단하게 이야기하면 어떤 것을 정의한다고 볼 수 있습니다.
예를 들어 “A”라는 변수를 앞으로 “사과” 라고 부르고 싶다면
A = “사과” 라고 입력하면 (변수 A에 문자열 사과를 입력하면) 컴퓨터는 이제 변수 A는 “사과”라고 인식합니다.
전 시간에 실행했던 주피터 노트북을 실행해보세요. 만약 까먹었거나, 중간에 들어온 사람이라면 아래 링크에서 파이썬 환경 설정을 한 후에 다시 와주세요 🙂
주피터 노트북에 아래 이미지처럼 A = “사과”를 입력합니다. 이제 이 컴퓨터는 A를 “사과”로 인식하게 됩니다. 확인을 위해 A를 출력해보겠습니다. Python에서 변수 등 값을 출력할 때 쓰는 함수는 print(변수명) 입니다.

첫 줄에 A = “사과” 를 입력했습니다. 두 번째 줄에 print(A)를 입력시켜 A에 “사과”가 잘 있는지 확인해보았습니다. 결과는 사과로 잘 뜨고 있네요

변수의 이름은 문자, 숫자, 언더바(“_”)로 만들 수 있습니다. 다만, 숫자로 시작할 수는 없습니다. 예를 들어, variable_1 = “사과” 의 경우 variable_1은 변수 명으로 사용 가능하지만, 1_variable = “사과”는 변수 명으로 사용할 수 없습니다. 숫자로 시작했기 때문입니다.

이미 지정한 변수를 바꿀 수 있을까요? 네 바꿀 수 있습니다. variable_1 = “사과”를 바나나 라고 바꾸려면 variable_1 = “바나나”라고 입력하면 됩니다.
처음 print(variable_1)을 했을 때는 “사과”를 출력했지만 그 다음에 변수에 바나나를 입력하니 “바나나”를 출력했습니다.

자료형 이해하기
Python 언어의 자료형은 숫자, 문자, 시퀀스, 불, 매핑, 세트 등이 있는데, 외우지 말고 직접 하나하나 쓰면서 이해하는 것이 좋습니다.
변수에는 숫자, 문자 등 다양하게 들어갈 수 있습니다. 먼저 숫자는 사칙연산(+, -, /, *)이 가능합니다. 아래 이미지와 같이 변수에 숫자를 넣고 연산을 하면 결과 값을 볼 수 있습니다.

더하기를 한 값을 다른 변수에 넣어도 가능합니다.

변수에는 숫자도, 문자도 들어갈 수 있습니다. 숫자는 그냥 쓰면 되지만, 문자는 따옴표 (”) 혹은 쌍따옴표 (“”) 안에 넣어야만 합니다. (그래서 위에서 “사과” 로 입력한 것입니다)
이번에는 여러 글자로 이루어진 문자(variable이라는 단어는 8 글자로 구성되었습니다) 사이에 있는 글자를 뽑아서 출력해보겠습니다.
예를 들어, a = “variable” 이라고 정의합니다. 여기서 i 만 출력하려면 어떻게 해야 할까요?
먼저, 우리는 첫 번째, 두 번째로 순서를 이야기하지만, 컴퓨터는 0번째부터 계산을 합니다. 그래서 variable의 v는 0번째, a가 1번째, r이 2번째 … 로 계산됩니다. 마지막으로 문자열에서 순서 선택은 대괄호”[ ]” 안에 숫자를 넣습니다.
즉 a[0]는 v, a[1]은 a, a[2]는 r, a[3]은 i … 입니다.

글자를 2번째부터 4번째 까지 (variable)뽑아서 출력하려면 어떻게 해야 할까요? 컴퓨터에게 순서는 “v(0) a(1) r(2) i(3) a(4) b(5) l(6) e(7)” 이렇게 되어 있으니 1, 2, 3 까지 뽑으면 됩니다.
이럴 때는 “a[1:4]”라고 입력합니다. 왜 a[1:3]이 아니고 a[1:4] 일까요? 시작 점은 생각하는 대로 입력하면 되지만, 마지막은 원하는 순서에서 -1을 해야 합니다. 문법이니까 아 그렇구나… 라고 알고 넘어가시면 되겠습니다.

위에서 숫자는 사칙연산이 된다고 했는데, 문자도 연산이 가능합니다. 다만 차이점은 문자의 경우 “+”를 하게 되면 문자들이 이어집니다. 예를 들어 a = “variable” 이고, b = ” is easy” 라고 하면 a + b를 입력하면 variable is easy 라고 출력이 됩니다.

리스트 자료형
다음에 확인할 자료형은 바로 리스트(list) 입니다. 앞에서 변수를 정의할 때는 A=B 처럼 1:1 관계로 나타냈다면, 리스트 자료형은 A= [B, C, D, E, …] 와 같이 여러 값을 가질 수 있습니다. 리스트 자료형은 아래와 같이 표현합니다.

3번 행을 보면 특이하게 [… [ … ] ]처럼 괄호 안에 괄호가 있는데, 이처럼 리스트 안에 또 다른 리스트를 넣을 수 있습니다.
리스트에서도 변수와 비슷하게 n번째 자료를 뽑아낼 수 있습니다. list03 리스트 안에 있는 자료들을 첫 번째부터 차례대로 뽑아내면 다음과 같습니다.

크게 어렵지 않습니다. 리스크 이름 뒤 대괄호안에 뽑기를 원하는 순서 (위에서 언급했듯 컴퓨터는 0이 첫 번째 입니다)를 입력하면 됩니다. 순서를 마이너스(-)를 붙이면 뒤에서 부터 뽑기가 됩니다.

리스트끼리는 더하기를 할 수 있습니다. (뺄 수는 없습니다)
아래와 같이 각각의 리스트를 더하면, 서로 이어지게 됩니다.

곱셈도 가능합니다. 곱셈을 하게 되면 각 요소가 n 배로 늘어나게 됩니다.

리스트 안에 몇 개의 요소가 있는지 확인 가능한 함수가 있습니다. 바로 len() 입니다. 사용법은 len(리스트 이름)을 넣어주면 됩니다. 아래를 보면 list2의 요소 개수가 12개 임을 알 수 있습니다.

이번에는 리스트 안에 있는 특정 요소를 삭제해보겠습니다. 삭제는 del ~ 문을 사용합니다. 바로 예제로 가보겠습니다.

처음에는 list2의 첫 번째 요소를 삭제했습니다. 다음에는 list2의 [1:3] (두번째부터 세번째까지) 요소를 삭제했습니다.
리스트에 요소를 추가할 수도 있습니다. append() 함수를 이용하면 되는데, “리스트명.append(추가할요소)” 로 사용합니다. 바로 예제 보겠습니다.

이렇게 append()를 이용하여 요소를 추가할 수 있고, 추가한 요소는 리스트의 맨 뒤에 붙습니다. 중간에 요소를 다른 요소로 바꾸고 싶다면, “리스트명[순서] = 바꾸고 싶은 요소”를 넣으면 됩니다. 예제 바로 보겠습니다.

만약 리스트에 없는 순서에 요소를 넣으면 어떻게 될까요?

네 안되네요. 리스트 안에 있는 요소만 변경할 수 있습니다.
리스트 안 요소들을 내림차순, 오름차순으로 정렬이 가능합니다. 먼저, 숫자들을 오름차순으로 정렬해보겠습니다. “list명.sort()” 를 입력하면 됩니다.

반대로 내림차순을 하기 위해서는 .sort()대신 .reverse()를 입력하면 됩니다.

만약 문자와 숫자가 같이 있다면 어떻게 될까요?

오류가 납니다. 숫자는 숫자끼리, 문자는 문자끼리만 가능합니다. 문자끼리 있는 리스트를 정렬하면 ㄱ~ㅎ 순으로 정렬이 되는 것을 볼 수 있습니다.

리스트 안에 동일한 요소가 몇 개나 있는지 확인하는 함수도 있습니다. “리스트명.count(찾고자 하는 요소)”로 입력하면 됩니다. 예제로 살펴보겠습니다.

튜플 자료형
튜플은 리스트와 비슷한 자료형인데 일부 차이가 있습니다.
1. 리스트는 추가, 수정, 삭제가 가능했지만, 튜플은 한 번 정의되면 바꿀 수 없다.
2. 리스트는 “[ ]” 안에 요소를 넣지만, 튜플은 “( )”안에 요소를 넣는다.
간단하게 튜플을 정의하고, 2번째 요소를 출력해 보겠습니다.

위에서 이야기한 것처럼 튜플은 리스트처럼 변경이 불가능합니다.
변경하려고 하면 아래와 같이 에러가 발생합니다.

딕셔너리 자료형
딕셔너리(Dictionary)는 말 그대로 사전처럼 구성된 자료형입니다. 국어사전에서 단어를 찾으면 단어에 대한 뜻이 적혀져 있습니다. 이처럼 “A = B” 형태로 구성된 자료형을 딕셔너리 자료형이라고 합니다. (이를 프로그래밍에서는 key : value 형태라고 합니다)

딕셔너리는 추가, 삭제, 검색 등의 기능을 가지고 있습니다.먼저 추가부터 확인해보겠습니다. 추가는 “딕셔너리명[key] = value” 라고 입력합니다. 아래 예제로 살펴보겠습니다.

방금 넣은 보유금액을 삭제해보겠습니다. 삭제는 “del 딕셔너리명[key]” 입니다.

딕셔너리 안 특정 key가 어떤 value를 가지고 있는지 알고 싶다면 “딕셔너리명[key]”만 입력하면 됩니다. 예를 들어 보겠습니다. 주소 값을 알고 싶다면 아래처럼 “ex_dic[“주소”]” 를 입력하시면 볼 수 있습니다.

딕셔너리 안에 있는 key만 보거나 value만 골라서 볼 수 있습니다. “딕셔너리.keys()” 혹은 “딕셔너리명.values()”를 입력하시면 됩니다.

집합 자료형
집합 자료형은 리스트 혹은 문자열에 포함된 요소들의 중복을 제거하는데 주로 쓰입니다. 첫 번째 예제는 문자열을 넣었을 때 입니다. bananananana 문제는 a와 b와 n으로만 구성되어 있어 아래와 같은 결과를 볼 수 있습니다.

리스트 형태로도 넣을 수 있는데, 아래 리스트에는 7, 9, 치킨, 피자가 반복됩니다. set()을 실행하면 겹치는 요소는 제거하고 출력됩니다.

집합 자료형은 중복 자료를 제거하는 등에 유용하게 사용할 수 있는 함수입니다.
불(Boolean) 자료형
불 자료형은 True 혹은 False 로만 구성됩니다. 이는 뒤에서 다루는 “if 문” 에서 많이 활용됩니다.
True 혹은 False를 정의할 때는 반드시 맨 앞 글자를 대문자로 넣어주어야 합니다.

여기까지 해서 변수와 자료형까지 다루어 보았습니다. 외우지 않아도 됩니다. 직접 타이핑 하면서 이해만 하면 됩니다.
(대신 반드시 타이핑은 해봐야 합니다)
빠른 시간 내에 간단하게 이해한 후에 곧바로 실제 사례(크롤링)를 통해서 파이썬을 익히는 것이 목표입니다. 그러니 지금 이해가 가지 않아 걱정하거나, 너무 쉽다고 생각할 것 없습니다. 아 ~ 그렇구나 하고 빠르게 따라오시기 바랍니다.