02. 자료형과 연산

안녕하세요 이전 포스팅 애서는 우리가 변수를 선언하면 ‘Everythin is object in Python’ 에 따라 객체를 생성하고 변수는 그것을 가르킨다 라고 정리했었습니다. 그런데 객체(Object)라는 것도 type 이 존재합니다. 이번 포스팅에서는 어떤 type이 있는지, 그리고 간단한 연산에 대해서 얘기해보겠습니다.

  • 기본 자료형 (Data Type) : Integer, Float, String, Boolean
  • 기본 연산자 : +,-,*,/,...

숫자형 - 정수형(Integer), 실수형(Float)

수학에서 정수는 양의 정수, 음의 정수 및 0으로 이루어진 수의 체계이다. 수학에서 실수는 주로 실직선 위의 점 또는 십진법 전개로 표현되는 수 체계이다. - 위키독스 -

네, 위키독스에서 나온 정의를 인용하며 더 설명하진 않겠습니다.

정수형
1
2
3
4
a = 1
a = -12
a = 0
print(type(a))
<class 'int'>
실수형
1
2
3
4
a = 1.0
a = -1.2
a = 1.23E10
print(type(a))
<class 'float'>

대신 여기서 앞에 class가 붙은 것에 대해서 잠깐 짚고 넘어가겠습니다. 이전 포스팅에서도 그렇고 이번 글의 시작에 파이썬에서는 ‘객체를 생성하고 변수는 그것을 가르킨다’ 라고 했습니다. 즉, tpye(a)print() 해서 나온 결과가 ‘int Object’가 생성 되었음 또는 ‘float Object’가 생성 되었음 그리고 a 라는 변수가 해당 Object를 가르키고 있는 것입니다. 그럼 저기 보이는 class가 무엇인지에 대해서는 이후 포스팅에서 class와 모듈 주제로 더 자세히 다뤄보겠습니다. 우선은 객체 라고 해두죠.

문자형(String)

문자, 단어 등으로 구성된 문자들의 집합을 의미한다. -위키독스-

우선 문자열을 만드는 방법에는 3가지가 있습니다. “,’,””” 이 표현들로 감싸주는 것입니다.

실수형
1
2
3
4
5
6
a = "1.0"
print(f"변수 a는 {a} 이고 타입은 {type(a)} 입니다.")
a = '1'
print(f"변수 a는 {a} 이고 타입은 {type(a)} 입니다.")
a = """Everything is Object in Python"""
print(f"변수 a는 {a} 이고 타입은 {type(a)} 입니다.")
변수 a는 1.0 이고 타입은 <class 'str'> 입니다.
변수 a는 1 이고 타입은 <class 'str'> 입니다.
변수 a는 Everything is Object in Python 이고 타입은 <class 'str'> 입니다.

위 예시를 봤을 때 1.0 하고 1 은 정수나 실수형 아닌가? 하는 의문이 드실텐데요. 일부로 이런 예시를 넣어봤습니다. 즉, 문자열로 정의하는 것은 “,’,””” 이 표현들로 감싸져있느냐가 핵심입니다.

문자열에 대해서는 여기서 끝내기 아쉬우니, ””” 는 언제사용하는지에 대해서 짧게 설명하고 넘어가겠습니다.

  1. 함수에 대한 설명을 작성할 때
  2. 큰 따옴표(“”)와 작은 따옴표(‘’)가 존재하는 텍스트를 다룰 때

1번은 나중에 함수를 주제로 포스팅할 때 자연스럽게 설명드리게 될 것 같고, 2번에 대해서 간단하게 예시를 보여드리겠습니다.

문자형
1
a = '이 글에는 "큰 따옴표"와 '작은 따옴표'가 존재합니다'
SyntaxError: invalid syntax
문자형
1
a = "이 글에는 "큰 따옴표"와 '작은 따옴표'가 존재합니다"
SyntaxError: invalid syntax
문자형
1
2
3
a = """이 글에는 "큰 따옴표"와 '작은 따옴표'가 존재합니다"""
a = '''이 글에는 "큰 따옴표"와 '작은 따옴표'가 존재합니다''' # ''' 으로도 사용 가능합니다 ^^
print(a)
이 글에는 "큰 따옴표"와 '작은 따옴표'가 존재합니다

논리형(Boolean)

참(True)과 거짓(False)을 나타내는 자료형이다. 2가지 값만 가질 수 있다. True, False는 파이썬의 예약어로 ture, false가 아닌 첫 문자를 항상 대문자로 정의하여야 한다 -위키독스-

논리형
1
2
3
4
a = True
b = False
print(type(a))
print(type(b))
<class 'bool'>
<class 'bool'>

논리 자료형에서는 어떤 케이스에서 ‘True’, ‘False’ 라고 판단하는지를 위주로 알아보겠습니다.

논리형 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = 1
b = 1
print(f"a = 1, b = 1의 bool은 {a == b}")
print(f"1 > 2의 bool은 {1 > 2}")
print(f"1 < 2의 bool은 {1 < 2}")
print('-'*20)
a = ""
print(f"a = ''일 때 bool은 {bool(a)}")
a = None
print(f"a = None일 때 bool은 {bool(a)}")
a = []
print(f"a = []일 때 bool은 {bool(a)}")
a = [1]
print(f"a = [1]일 때 bool은 {bool(a)}")
a = 1, b = 1의 bool은 True
1 > 2의 bool은 False
1 < 2의 bool은 True
--------------------
a = ''일 때 bool은 False
a = None일 때 bool은 False
a = []일 때 bool은 False
a = [1]일 때 bool은 True

자 위 코드 결과에 대해서 짧게 설명을 드려보자면수학기호 =, >, < 은 설명안해도 잘 아실 것 같으니 넘어가겠습니다. 변수에 대해서 “참,거짓”을 판단할 때 요소(attributes)가 없다면 False 결과를 내고있음을 알 수 있습니다. 다음 포스팅에서 다루겠지만, [] 를 ‘리스트 자료형’이라고 하는데요. a = [1] 처럼 1이라는 정수형 요소가 하나 존재할 때는 True를 뱉지만, a = []처럼 비어있을 경우 False를 내뱉는 것을 알 수 있습니다.

연산자 다루기

이제 연산자에 대해서 얘기해보죠. 비교적 간단합니다.

숫자형 연산자 예시
1
2
3
4
5
6
7
8
9
10
11
12
a = 1
b = 2
print(f'더하기 연산 a + b = {a+b}')
print(f'빼기 연산 a - b = {a-b}')
print(f'곱하기 연산 a * b = {a*b}')
print(f'나누기 연산 a / b = {a/b}')
print('-'*20)
a = 5
b = 2
print(f'제곱 연산 a ** b = {a**b}')
print(f'나머지 연산 a % b = {a%b}')
print(f'몫 연산 a // b = {a//b}')
더하기 연산 a + b = 3
빼기 연산 a - b = -1
곱하기 연산 a * b = 2
나누기 연산 a / b = 0.5
--------------------
제곱 연산 a ** b = 25
나머지 연산 a % b = 1
몫 연산 a // b = 2

네 기본 연산에 대한 예시를 들어보았습니다. 그리고 데이터를 다루다보면 한 번 선언한 변수를 반복적으로 1씩 더해주거나 빼주거나 하는 경우가 존재합니다.

숫자형 연산자 예시2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a = 5
a = a + 1
print(f'a = a+1 결과는 {a}')

a = 5 # 예시를 위해 다시 선언
a += 1
print(f'a += 1 결과는 {a}')

a = 5
a -= 1
print(f'a -= 1 결과는 {a}')

a = 5
a /= 2
print(f'a /= 2 결과는 {a}')

a = 5
a **= 2
print(f'a **= 2 결과는 {a}')

a = 5
a //= 2
print(f'a //= 2 결과는 {a}')

a = 5
a %= 2
print(f'a %= 2 결과는 {a}')
a = a+1 결과는 6
a += 1 결과는 6
a -= 1 결과는 4
a /= 2 결과는 2.5
a **= 2 결과는 25
a //= 2 결과는 2
a %= 2 결과는 1

위와 같이 작성하는 것은 ‘아 이렇게도 작성해서 연산할 수 있구나’ 정도로만 알아두면 좋을 것 같네요.

문자형에도 연산자를 사용할 수 있는데요. 예시를 들어보죠.

문자형 연산자 예시
1
2
3
4
5
6
a = "You"
b = "need"
c = "Python"
print(f"문자열 더하기 {a + b + c}")
print(f"문자열에 숫자 곱하기 {c*2}")
print(f"문자열 길이 구하기 {len(c)}")
문자열 더하기 YouneedPython
문자열에 숫자 곱하기 PythonPython
문자열 길이 구하기 6

문자열을 더하기(Concatenation) 와 곳셈연산자를 통해 표현하는 것과, 문자열의 길이를 구하는 내장 함수인 len()에 대해서 알아보았습니다.

결론

이번 포스팅에서는 자료형(Integer, Float, String, Boolean)에 대해서 어떤 것들인지를 알아보았고, 연산자를 어떻게 활용할 수 있는지에 대해서 정리해 봤습니다.

다음 포스팅은 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 셋(Set) 자료형에 대해서 다뤄보겠습니다.

이상으로 이번 포스팅은 마치겠습니다. 추가 의견이나 수정이 필요한 부분이 있다면 언제든지 거침없는 피드백 부탁드립니다! 부족한 글 읽어주셔서 감사합니다!

Reference

댓글