자료형
Python에는 크게 네 가지의 자료형이 있습니다.
10
'text'
[1, 2, 3]
True
1. 숫자 자료형은 정수 , 실수를 포함하는 문자입니다.
수학에서 쓰이는 연산 가능한 숫자들이 포함됩니다.
정수의 경우 integer의 약자인 int를 사용해서 정수 선언이 가능합니다.
실수의 경우 float을 사용해서 선언이 가능합니다.
예를 들면, 다음 시간에 다룰 input()이라는 함수를 이용해 어떤 수를 받아 들일 때, 연산을 가능하게 하려면 숫자 자료형으로 선언을 해줘야합니다.
int(input())
float(input())
input() 함수는 기본적으로 문자 자료형으로 받아오기때문에, 위와 같은 과정을 통해 수학 연산이 가능해집니다.
2. 문자 자료형은 따옴표로 표현되는 글자입니다. string이라고 하고, str로 문자 자료형 선언이 가능합니다.
Python에서 주의 해야할 것은 한글이나 영어를 입력하고 싶으면 무조건 따옴표 안에 넣어야 합니다.
Hello world
'Hello world'
첫번째 줄같이 따옴표를 넣지 않으면 에러가 뜹니다.
따옴표를 넣지 않는 글자는 변수로 인식되기 때문에 따옴표를 주의해야합니다!
큰 따옴표와 작은 따옴표 상관 없습니다. 양 끝이 같기만 하면 됩니다.
print('"I love python!"')
print("""I love
python, also
c++ too""")
I love python!
I love
python, also
c++ too
따옴표를 문자열로 저장하고 싶다면, 큰 따옴표 안에 넣어주면 되고 반대도 마찬가지입니다.
그리고 따옴표나 큰 따옴표를 세 개 연속으로 사용하면, 엔터키가 반영되어 문자열이 인식됩니다.
3. 리스트 자료형은 시퀀스(sequence)라고 하기도 하고, 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary)를 포함합니다.
[1, 2, 3]
(1, 2, 3)
{'a' : 1, 'b' : 2, 'c' : 3}
세 가지 모두 괄호 안에 원소들을 포함하는 집합 같은 개념입니다. 집합과 다르게 원소가 중복되어도 모두 원소로 간주됩니다.
기본적으로 제일 많이 쓰이는 건 리스트이고, 자세한 개념은 뒤에 정리하겠습니다. 괄호의 종류에 따라 달라지기때문에 대괄호, 중괄호, 소괄호를 잘 구분해서 사용해야합니다.
4. 마지막으로 불 자료형(Boolean)은 참과 거짓을 나타냅니다.
1 + 1 == 2
print(1 + 1 != 2)
print(not(1 + 1 != 2)
my_list = [1, 2, 3]
print(1 in my_list)
print(1 not in my_list)
False
True
True
False
기본적으로 사칙연산, 포함관계 등의 사실관계를 나타낼 수 있습니다.
True나 False로 표현되고, 마지막 두 줄의 경우 1이라는 숫자가 my_list에 포함 유무에 대해 참 거짓을 표현하였습니다.
사실관계를 반대로 표현하고 싶다면 not을 쓰면 됩니다.
어떤 변수나 문자가 무슨 자료형인지 알고 싶다면 type 함수를 사용하면 알려줍니다.
print(type(2))
print(type('hello world'))
처음에 자료형이 헷갈려서 에러를 많이 내는데, 위 방식대로 확인하는 것도 좋은 방법입니다.
모든 자료형은 연산이 가능합니다.
print(5 + 5)
print('5' + '5')
print([5] + [5])
우리가 사칙연산에서 쓰는 더하기의 결과는 첫번째 줄에서 볼 수 있습니다. 숫자 자료형끼리 덧셈을 하기 때문이죠.
두번째 줄처럼 문자를 더한다고 해서 error가 뜨지 않습니다. 단, 여기선 더하기가 말 그대로 문자를 잇는 역할만 합니다.
세번째 줄의 리스트의 경우, 덧셈을 하면 원소를 합친 리스트가 만들어 집니다.
곱하기도 비슷합니다.
print(5 * 5)
print('5' * 5)
print([5] * 5)
덧셈과 비슷하게 문자형과 리스트형에도 적용이 됩니다. 단, 문자끼리나 리스트끼리 곱셈은 할 수 없습니다. 그리고 뺄셈과 나눗셈도 문자와 리스트형에는 사용할 수 없습니다.
python에서 자료형을 잘 못 정하면 오류가 생기기때문에 어떤 자료형이 있는지 알고 각각의 상황에서 잘 사용하면 되겠습니다.
추가적인 필요한 정보는 수정하면서 정리하겠습니다.
감사합니다.