복습용/초보자 참고를 목적으로 포스팅합니다.
최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 Python이 인기를 끌고 있습니다.
코드 구성의 가독성이 타 언어 대비 뛰어나고, C/C++/JAVA에서 구현 가능한 모든 것들을 Python에서도 만들 수 있습니다.
데이터 분석부터 머신러닝, 딥러닝 등 다양한 분야에서 활용 가능한 언어 Python 지금부터 차근차근 공부해봅시다.
2장 (1). 자료형(숫자형과 문자열 자료형)
2. 1 숫자형
숫자형이란 숫자 형태로 이루어진 자료형입니다. 우리가 흔히 사용하는 숫자들이 이에 해당됩니다.
예를 들어 1, 2, 3과 같은 정수, 12.3과 같은 실수, 1 + 2j 같은 복소수, 8진수, 16진수 모두가 숫자형입니다.
정수형(Integer)은 말 그대로 정수를 뜻하는 자료형입니다.
#정수형 예시
int_a = 123
int_b = -123
int_c = 0
실수형(Floating-point)은 소수점이 포함된 숫자를 뜻하는 자료형입니다.
실수형은 표현 방식이 두 가지로 나뉩니다.
우리가 알고있는 일반적인 소수점 표현 방식과 컴퓨터식 지수 표현 방식이 있습니다.
1.23E10(또는 1.23 e10 둘 다 같은 의미)은 1.23*1010과 같은 의미 입니다.
#실수형 예시
float_a = 1.2
float_b = -1.23
#컴퓨터식 지수 표현 방식
float_a = 1.23E10
다음은 8진수와(Octal) 16진수(Hexadecimal) 자료형입니다.
8진수의 표기법은 숫자가 0o(숫자 0, 대문자 또는 소문자 o)로 시작하면 됩니다.
16진수의 경우 숫자가 0x로 시작하면 됩니다.
#8진수 예시
oct_a = 0o123
#16진수 예시
hexadecimal_a = 0x8ff
복소수(Complex number) 자료형에는 몇 가지 내장 함수가 있습니다.
내장 함수에 대해 간단히 말씀드리면
외부 라이브러리나 모듈, 패키지 등을 설치하지 않고 바로 사용할 수 있는 함수를 말합니다.
함수에 대한 부분은 추후 다른 포스팅에서 자세히 다루겠습니다.
#복소수 예시
comp_a = 1 + 2j
comp_b = 3 - 4j
#복소수의 실수 부분을 리턴하는 내장 함수
comp_a = 1 + 2j
comp_a.real #1.0
#복소수의 허수 부분을 리턴하는 내장 함수
comp_a = 1 + 2j
comp_a.imag #2.0
#복소수의 켤레복소수를 리턴하는 내장 함수
comp_a = 1 + 2j
comp_a.conjugate() #(1-2j)
#복소수의 절댓값 리턴
comp_a = 1 + 2j
abs(comp_a) #2.236067977499
숫자형 연산하기
#숫자형 사칙연산
a = 2
b = 1
a + b #3
a - b #1
a * b #2
a / b #2
#숫자형 제곱연산
a = 2
b = 3
a**b #8
#숫자형 몫과 나머지 연산
a = 3
b = 2
a % b #1 나머지를 반환
b % a #2
a // b #0 몫을 반환
2. 2 문자열 자료형
문자열(String)이란 문자나 단어 등으로 구성된 문자들의 집합을 의미합니다.
"Life is short, You need Python"
"a"
"123"
예시를 보고 의문점이 생기시나요?
123을 보고 저건 숫자형이 아닌가?라는 생각을 할 수 있습니다.
결론부터 말씀드리면 어떤 문구나 숫자든 큰 따옴표("") 안에 둘러 싸여 있다면 모두 문자열로 취급합니다.
간단한 예시를 들어 확인해 보겠습니다.
#각 변수에 숫자123과 문자열"123"을 대입한 후 진위 판별
a = 123
b = "123"
print(a == b) #False
#각 변수의 자료형 판별
a = 123
b = "123"
type(a) # <class : int>
type(b) # <class : str>
비교 연산자 '=='를 통해 a 변수에 할당된 값과 b 변수에 할당된 값이 같은지 확인해 보았습니다.
결과는 False로 명백히 다른 값임을 확인할 수 있습니다.
추가적으로 type 함수를 통해 변수가 어떤 자료형인지 판별이 가능합니다.
예시 코드의 결과와 같이 a는 Integer(정수형) b는 String(문자열) 임을 확인할 수 있습니다.
문자열 만들기
문자열을 만들 때는 작은따옴표와 큰 따옴표 모두 사용이 가능합니다.
단, 문자열 생성 시 주의할 점이 있습니다.
-
문자열에 작은따옴표를 포함시키는 경우엔 큰 따옴표로 둘러싸야한다.(반대의 경우도 마찬가지)
-
같은 따옴표를 사용해야 될 때는 \(백 슬래시)를 이용하여 따옴표를 문자열에 포함시킨다.
-
여러 줄인 문자를 변수에 대입하고 싶을 때는 이스케이프 코드'\n'을 삽입한다.
문자열을 만들 경우에는 예시와 같이 활용이 가능합니다.
#문자열 만들기
"Python"
'Python'
"""Python"""
'''Python''' # 4가지 경우 모두 다 같은 문자열 Python
#문자열에 작은 따옴표를 포함시키는 경우
D_D = "I'm Daily_Data" # 큰 따옴표로 감싸준다.
#문자열에 큰 따옴표를 포함시키는 경우
say = '"Python is easy." he says.' # 작은 따옴표로 감싸준다.
#백슬래시를 이용하여 문자열에 포함시키기
food = 'Python\'s favorite food is perl'
#여러 줄인 문자열을 변수에 대입
multiline = "Life is short\nYou need python"
multiline = '''
Life is short
You need python
'''
문자열 연산하기
Python에서는 문자열을 더하거나 곱하는 연산이 가능합니다.
문자열을 더해서 연결(Concatenation)하는 경우와 곱하는 경우의 예시입니다.
#문자열을 더해서 연결하기
head = "Python"
tail = "is fun"
head + tail #Python is fun
#문자열 곱하기
a = "Python"
a * 2 #PythonPython
문자열 인덱싱과 슬라이싱
문자열 인덱싱(Indexing)이란 문자열 내의 특별한 값을 뽑아내는 기법입니다.
#코드 예시
sentence = "Life is short, You need Python"
변수 sentence에 저장된 문자열의 각 문자마다 번호를 매겨보면 다음과 같습니다.
L | i | f | e | i | s | t | o | o | s | h | o | r | t | , | ... | ||||
0 | 1 | ... | |||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ... |
위 표를 보고 파이썬은 숫자를 0부터 센다는 사실을 알아두어야 합니다.
sentence [2]는 문자열의 세 번째 문자인 f를, sentence [12]는 13 번째 문자인 s를 가리키고 있음을 확인할 수 있습니다.
#인덱싱 예시
sentence[2] #f
sentence[12] #s
#인덱싱 활용
sentence[-0] #L
sentence[0] #L
sentence[-2] #뒤에서 두 번째 문자인 o
sentence[-5] #뒤에서 다섯 번째 문자인 y
문자열 슬라이싱(Slicing)은 단어를 통째로 뽑아낼 수 있는 기법입니다.
인덱싱보다 효율적으로 단어를 뽑아낼 수도 있다는 것이 장점입니다.
#코드 예시
a = "Life is short, You need Python"
#인덱싱으로 'Life'라는 단어 추출
b = a[0] + a[1] + a[2] + a[3]
b # Life
#슬라이싱으로 'Life'라는 단어 추출
b = a[0:4]
b # Life
예시처럼 슬라이싱으로 단어를 추출할 때 인덱싱보다 코드가 간결해진 것을 알 수 있습니다.
이때 공백도 단어처럼 취급이 되며, [0 : 4]는 인덱스 번호 0 포함 4 미만이라는 것을 주의해야 합니다.
#슬라이싱 예시
a = 'Life is short, You need Python'
a[0:4] #Life
#슬라이싱 활용
a[5:7] # is
a[19:] # You need Python
a[:17] # Life is short
a[:] # Life is short, You need Python
a[19:-7] # You need
문자열 포매팅
문자열 포매팅(Formatting)이란 문자열에 어떤 값을 삽입하는 방법입니다.
#문자열 포매팅 예시
a = "I eat %d apples."% 3
# I eat 3 apples.
b = "I eat %s apples."% "three"
# I eat three apples.
#숫자값을 나타내는 변수 대입
number = 3
c = "I eat %d apples."% number
# I eat 3 apples.
#2개 이상의 값 넣기
number = 3
day = "three"
d = "I ate %d apples. so I was sick for %s days"% (number, day)
# I ate 3 apples. so I was sick for three days
예시를 보면 %d는 숫자를, %s는 문자열을 넣을 때 사용한다는 것을 알 수 있습니다.
이외에도 몇 가지 포맷 코드가 있습니다.
코드 | 설명 |
%s | 문자열(String) |
%c | 문자 1개(Character) |
%d | 정수(Integer) |
%f | 부동 소수(Floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal %(문자 '%' 자체) |
이때 %s 포맷 코드 같은 경우는 어떤 형태의 값이든 문자열로 바꿔서 삽입 가능합니다.
'Programming > [Python]' 카테고리의 다른 글
[Python/점프 투 파이썬 복습] 2. (5) Python 프로그래밍 자료형(변수) (0) | 2021.02.22 |
---|---|
[Python/점프 투 파이썬 복습] 2. (4) Python 프로그래밍 자료형(집합 자료형) (0) | 2021.02.19 |
[Python/점프 투 파이썬 복습] 2. (3) Python 프로그래밍 자료형(튜플, 딕셔너리 자료형) (0) | 2021.02.18 |
[Python/점프 투 파이썬 복습] 2. (2) Python 프로그래밍 자료형(리스트 자료형) (0) | 2021.02.15 |
[Python/점프 투 파이썬 복습] 1. Python은 무엇인가? (0) | 2021.02.08 |