2022.06.27 - [프로그래밍/Python] - [Python 배우기] 3. 자료형
자료형은 데이터의 형태를 뜻하며 숫자, 문자, 불 등이 있다고 했다.
이번에는 변수를 배우면서 자료형을 연산해보자.
0. 변수(Variable)
- 먼저 들어가기 전에 변수를 알아보자. 변수란 자료형의 값을 저장하는 공간(메모리)이다.
개념이 어렵다면 "변할 수 있는 수"라고 기억해도 좋다.
- 변수는 어떻게 활용하는지 예를 들어본다. 아래의 코드는 a라는 변수에 숫자형 123을 저장하는 것이다.
이전에도 말했지만 "=" 기호는 수학에서 "같다"라는 뜻이지만 프로그래밍에서는 우항에서 좌항으로 "대입하다"이다.
- type(a)는 a변수의 자료형을 나타내는 명령어이다. 아래의 소스코드를 실행하여 결과를 확인하자
(복붙하지말고 타이핑을 해야 도움이 된다)
a=100
print(type(a))
print(a)
#결과 : <class 'int'> 100
b=3.14
print(type(b))
print(b)
#결과 : <class 'float'> 3.14
c=1.23456e2
print(type(c))
print(c)
#결과 : <class 'float'> 123.456
d=0o375
print(type(d))
print(d)
#결과 : <class 'int'> 253
e=0xFF
print(type(e))
print(e)
#결과 : <class 'int'> 255
1. 숫자형
- 사칙연산
- 기본적으로 더하기(+), 빼기(-), 곱하기(*), 나누기(/)가 가능하다
- 추가적으로 제곱(**), 몫(//), 나머지(%)도 가능하다.
a = 5
b = 3
print(5+3)
# 결과: 8
print(5-3)
# 결과: 2
print(5*3)
# 결과: 15
print(5**3)
# 결과: 125
print(5/3)
# 결과: 1.6666666666666667
# 5/3은 1.66666666666...... 인데 이러한 무한소수는 컴퓨터 데이터로 표현 불가능하다.
# 따라서 임의로 반올림을 하거나 등으로 임의 처리를 하는데 이는 오류를 나타낼 수 있음을 인지해야한다.
print(5//3)
# 결과: 1
print(5%3)
# 결과: 2
2. 문자형 연산
- 문자형 변수 선언
- 문자열은홀따옴표(') 또는 쌍따옴표(")로 감싼다고 설명했다. (3개는 잘 사용하지 않는다.)
- 변수 또한 대입연산자를대입 연산자를 사용한다. (모든 자료형이 대입 연산자를 사용)
text = 'Hello Python!'
# 또는
text = "Hello Python!"
# 또는
text = '''Hello Python!'''
# 또는
text = """Hello Python!"""
- 문자열 안에 홀따옴표 또는 쌍따옴표를 표현하고 싶을 때는 이스케이프 문자 역슬래쉬( \ )를 사용한다.
(사용하는 키보드 또는 설정 값에 따라 역슬래쉬 '\'가 원화(₩) 표시로 나타날 수 있다)
# text = 'Yes, I'm a good student'
# 'Yes, I' 까지만 문자열로 인식하고, 그 뒤 m ~ student는 오류로 인식
text = 'Yes, I\'m a good student'
# 이스케이프 \' 를 사용하면 문자 I 우측 홀따옴표(')는 문자열을 지정하는 홀따옴표가 아닌 문자 그 자체의 홀따옴표로 표시
# text = "He says, "I'm a good student"
# "He says, " 까지만 문자열로 인식하고, 그 뒤 I ~ student는 오류로 인식
text = "He says, \"I'm a good student\""
# 문자열 표시를 쌍따옴표로 지정했기 때문에 I우측 홀따옴표를 이스케이프 하지않아도 된다.
# 그러나 "I'm a good student"를 표시하기 위해 두개의 이스케이프를 사용하여 쌍따옴표가 문자열을 지정하는 쌍따옴표가 아닌 문자 그 자체의 쌍따옴표로 표시
- 이외에도 탭, 백스페이스, 줄바꿈(엔터) 등을 표시할 수 있는 이스케이프가 존재한다.
(아래의 표 외에 궁금한게 있으면 따로 검색)
이스케이프 코드 | 설명 |
\n | 줄바꿈 |
\t | 탭 |
\\ | 이스케이프 코드 "\"가 아니고, 문자 자체인 "\"를 표시 |
\b | 백스페이스 |
- 문자형 사칙연산
- 문자도 사칙연산이란게 있을까? 정답은 "있다"이지만 생각하는 사칙연산과는 다르다.
- 더하기(+)는 문자열 이어 붙이기, 곱하기(*)는 문자열 n개만큼 추가하기이다.
- 빼기(-) ,나누기(/)는 기능이 없어 오류 난다.
first_text = "Hello "
second_text = "world"
print(first_text + second_text)
# 결과 : Hello world
print("#"*50)
# 결과 : ##########.....#######
- 이외 문자열 기능은... 너무 많아서 참고 중인 점프 투 파이썬을 보자... https://wikidocs.net/13
(참고로 포매팅(format())은 사람에 따라 자주 사용하고, 인덱싱은 배열 차례에서 자세히 다룰 것이다)
3. 불형(Boolean)
- 불형 변수 선언
- 불형은 True(참, 1)와 False(거짓, 0) 두가지만 존재한다. (대소문자 구분)
var1 = True
var2 = False
print(type(var1))
print(var1)
# 결과 : <class 'bool'> True
print(type(var2))
print(var2)
# 결과 : <class 'bool'> False
- 불형 논리 연산
- 수학에서 불의 대수를 이해하였다면 불형은 껌이다!
- 이 불의 대수도 수학과는 조금 다른데(개념적으로는 같다) 기본 동작으로 논리곱(AND), 논리합(OR), 논리 부정(NOT)이 있다. (코드는 소문자로 작성한다.)
코드 | 설명 | 예제 |
and | "그리고"라는 뜻이다. 양쪽 값이 모두 True여야 결과도 True이며 나머진 False이다. 1*1 =1, 1*0=0 식으로 생각해도 좋다. |
1. True and True = True 2. True and False = False 3. False and True = False 4. False and False = False |
or | "또는"라는 뜻이다. 양쪽 값중 하나라도 True라면 결과도 True이다. 1+1=1, 1+0=1, 0+0=0 식으로 생각해도 좋다 |
1. True and True = True 2. True and False = True 3. False and True = True 4. False and False = False |
not | "부정"이라는 뜻으로 참을 부정하면 거짓, 거짓을 부정하면 참이다. "반대"라고 생각해도 좋다. |
not True = False not False = True |
- 아래 코드를 예로 들어본다.
# and 연산
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# 결과 : True False False False
# or 연산
print(True and True)
print(True and False)
print(False and True)
print(False and False)
# 결과 : True True True False
# not 연산
print(not True)
print(not False)
# 결과 : False True
- 지금은 논리 연산이지만 이후에 비트 연산으로도 and, or, not, xor 등이 사용되는데 가끔 사용된다. 일단 존재만 알고 넘어가자.
사실 개발자 포지션에는 이 파트부터 구글링이 필요한 단계이다
무슨 뜻이냐면 내가 앞으로 사용할 기능은 책에 1% 이하로 담겨있다.
즉, 책은 기초 중에 기초만 담겨있고 앞으로 내가 필요할 이외의 기능들이 엄청나게 많다는 것이다.
그 기능들을 사용하기 위해 필요한 것이 구글링!
지금은 내가 뭘 해야 할지, 이걸 배워서 어따 써먹을지 궁금해할 단계라고 생각할 것이다.
그래도 조금만 참으면서 이런 기능은 없을까? 저런 기능은 없을까? 하며 구글링을 미리 연습해보는 게 좋을 것 같다.
예를 들어 문장마다 마침표로 끝났는지 확인하고 싶을 때는 어떻게 해야 할까?
구글에다 "파이썬 문자열 끝에 특정 문자 찾기"로 검색해서 찾아보면 된다. (endswith)
2022.07.07 - [프로그래밍/Python] - [파이썬 독학] 5. 변수와 리스트(feat 이중리스트)
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬 독학]6. 튜플(튜플과 리스트 차이) (0) | 2022.07.08 |
---|---|
[파이썬 독학] 5. 변수와 리스트(feat 이중리스트) (0) | 2022.07.07 |
[파이썬 독학] 3. 자료형 (0) | 2022.06.27 |
[파이썬 독학] 2. 파이참(PyCharm) 설치 (0) | 2022.06.26 |
[파이썬 독학] 1. 파이썬 설치하기&실행하기 (0) | 2022.06.25 |
댓글