우리가 코딩을 하면서, 값을 저장하고 변경할 때가 많습니다. 이를 위해선 컴퓨터가 값을 기억하게 할 장소가 필요하죠.
따라서 우리는 변수라는 임시 상자를 만들어서 컴퓨터가 값을 기억하게 합니다. 즉, 변수란 이름을 가진 값인 겁니다.
a = 1
변수는 원하는 변수의 이름과 해당하는 값을 등호로 연결하여 선언됩니다.
오른쪽에 있는 값이 왼쪽 이름의 변수에 저장되는 방식이죠. 위의 코드를 보면 a라는 이름의 변수를 만들고, 그 안에 1이라는 숫자를 저장하는 모습을 볼 수 있습니다.
또 변수는 다음과 같이 변경이 가능하죠.
a = 3
print(a) # 3이 출력됩니다.
여기서 출력되는 a의 값은 1이 아닌 3이 나오는 걸 볼 수 있습니다.
이렇듯, 똑같은 이름의 변수에 값을 다시 넣으면 값이 바뀌게 되죠. 다시 선언하는 것뿐만 아닌, 더하기, 빼기 등의 연산을 통해서도 바뀌게 됩니다. 이에 대해서는 뒤에 연산자 파트를 할 때 다시 다루겠습니다.
그렇다면 변수는 어떤 값을 가질 수 있을까요? 변수가 어떤 값들을 가질 수 있는지 나타내는 것을 우리는 자료형(type)이라 부릅니다. 파이썬은 크게 5가지의 기본 타입들이 존재하죠.
int는 integer의 약자로, 정수라는 뜻입니다. 정수는 음의 정수, 0, 양의 정수(자연수)로 구성됩니다. 즉, 우리가 흔히 쓰는 3, 17, 42와 같은 정수들이 int에 포함됩니다.
a = 3 # 이때 a는 int입니다.
float는 floating point의 약자로 소수를 나타냅니다. 0.3, 1.872와 같은 소수들이 float에 해당되죠.
a = 3.14 # 이때 a는 float입니다.
🤔 0.3 x 3 = 0.9가 아니다?
컴퓨터가 소수를 나타낼 때, 효율적으로 처리하기 위해서 부동소수점이라는 방식을 사용합니다. 자료형 float의 이름이 여기에서 왔죠. 이 책에서는 그 원리에 대해서 자세히 다루지는 않겠지만, 컴퓨터가 소수를 다루는 방식이 궁금하신 분들은 찾아보시길 바랍니다.
str은 string의 약자로 문자열을 뜻합니다. 문자열이란 문자나 단어들의 집합을 말하며, "파이썬은 즐거워요!"
, "c"
, "051"
등이 문자열에 해당됩니다. 문자들의 집합이라길래 문자가 여러 개 와야할 것처럼 보이지만, ''
처럼 빈 문자열이나 'a'
과 같이 문자 하나도 문자열에 포함되죠.
문자열은 총 네 가지의 표현방식을 가지고 있습니다.
a = '안녕' # 작은따옴표(') 안에 사용하기
b = "반가워" # 큰따옴표(") 안에 사용하기
c = """
나는 여러 줄에
결쳐 쓸 수 있어
""" # 큰따옴표 세 개로 여러 줄의 문자열 표현하기
d = '''
나도 마찬가지로
여러 줄에
쓸 수 있어
''' # 작은따옴표 세 개로 여러 줄의 문자열 표현하기
이렇듯 작은따옴표, 큰따옴표로 문자열을 나타낼 수 있습니다. 그렇다고 둘을 섞어 쓰게 되면 오류가 발생하니 주의하세요!
💡 주석과 문자열
우리가 주석을 쓸 때, # 뒤에 오는 것들은 모두 주석 처리되어 코드에 영향을 주지 않는다고 배웠습니다. 그렇다면 #가 들어간 문자열은 어떻게 될까요?
print("이것도 출력될까요?") # "#이건 주석일까요?"가 출력됩니다
위에서 볼 수 있듯, 문자열로 감싸진 #과 그 뒤의 문장은 주석 처리되지 않습니다. 문자 1인 '1'과 숫자 1이 다른 것처럼 #과 '#'도 다르기 때문입니다.
bool은 boolean의 약자로 참, 거짓 등의 진리값을 나타냅니다. 따라서 bool 자료형은 True와 False밖에 없죠.
a = True # 이때 a는 bool입니다.
NoneType은 변수에 지정된 자료형이 없을 때 쓰는 자료형입니다. 즉, 변수에 값이 없다는 것을 알려주는 값이죠. 특정 무언가를 검색한 결과 값을 찾을 수 없거나 해당 자료에 존재하지 않을 때 주로 등장합니다. 따라서 NoneType은 연산에 쓰일 수 없으며, '존재하지 않음'이라는 결과를 알려주는 용도로 사용됩니다.
a = None # 이때 a는 NoneType입니다.
앞서 자료형의 종류에서, a라는 변수에 여러 자료형의 값들을 저장하여 예시들을 보았었습니다. 이처럼 파이썬에서는 하나의 변수가 다양한 자료형의 값을 담을 수 있습니다. 즉, a라는 변수가 1이 되었다가 "안녕하세요"가 될 수 있는 것이죠. 따라서 type()을 통해서 변수가 어떤 자료형을 가지고 있는지 확인합니다.
a = 17
print(type(a)) # int가 출력됩니다.
a = "파이썬"
print(type(a)) # str이 출력됩니다.
위 코드처럼 type() 안에 변수를 넣어 어떤 자료형의 값을 가지고 있는지 확인할 수 있습니다.
📌 print()
저번 시간에 배운 print()는 값을 출력해줍니다. 그 값에는 1, "안녕하세요"와 같은 자료형 값이 담길 수도 있고, 변수 혹은
print(type(a))
처럼 type() 자체가 담길 수도 있죠. 그뿐만 아닌 앞으로 배울 자료형들도 print를 통해서 출력이 가능합니다.