이번 포스팅에서는 파이썬 언어의 자료형에 대해 학습합니다.
"자료형을 알고 있다면 그 언어의 절반을 터득한 것"
● 자료형이 필요한 이유
1 + 1 = 2
→ 1을 숫자형으로 생각하여 계산한다.
'1' + '1' = '11'
→ '1'을 문자형으로 생각하여 계산한다.
컴퓨터에게 프로그램 형식에 맞게 타입을 정해줘야 한다. 자료형이란 값의 타입이다.
001-1 에서는 자료에 대한 타입을 나타내는 자료형을 배운다.
목차
- 숫자형
- 숫자형 사칙연산
- 문자열 자료형
- 문자열 연산
- 문자열 포매팅
- 문자열 관련 함수들
I) 숫자형
1. 정수형
정수를 뜻하는 자료형 (양의 정수, 음의 정수, 숫자 0)
a= 1
print(a)
1
print(type(a)) // int가 출력 (정수형)
int
2. 실수형
소수점이 포함된 숫자
a= 3.14
print(a)
3.14
print(type(a)) // float가 출력 (실수형)
float
3. 컴퓨터식 지수 표현 방식
컴퓨터식 지수 표현 방식으로 e와 E 둘 중 어느 것을 사용해도 무방하다.
a = 4.24e10
priint(a)
4.24 x 10^10
b = 4.24e-10
priint(b)
4.24 x 10^-10
4. 8진수, 16진수
8진수를 만들기 위해서는 숫자가 0o 또는 0O 로 시작하면 된다.
a = 0o11
9 //(10진수)
16진수를 만들기 위해서는 숫자가 0x로 시작하면 된다.
a = 0x11
17 //(10진수)
II) 숫자형 사칙 연산
1. +, -, *, /
계산기와 마찬가지로 연산자를 사용해 사칙연산을 수행한다.
a = 3
b = 4
a + b
7
a - b
-1
a * b
12
a / b
0.75
2. a의 b제곱을 나타내는 ** 연산자
a = 2
b = 4
a ** b
16
3. a를 b로 나눈 몫을 나타내는 // 연산자
a = 11
b = 4
a // b
2
4. a를 b로 나눈 나머지를 나타내는 % 연산자
a = 11
b = 4
a % b
3
III) 문자열 자료형
문자열이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.
1. 문자열 만들기
i) 큰따옴표(")로 양쪽 둘러싸기
a = "Hello World"
ii) 작은따옴표(')로 양쪽 둘러싸기
a = 'Hello World'
iii) 큰따옴표 3개를 연속(""") 사용하여 둘러싸기
a = """Hello World"""
iv) 작은따옴표 3개를 연속(''') 사용하여 둘러싸기
a = '''Hello World'''
2. 문자열 안에 큰따옴표나 작은따옴표를 포함시키고 싶을 때
i) 문자열에 큰따옴표(") 포함시키기
"I love Python" he says.
위와 같이 큰따옴표(")가 포함된 문자열을 작은따옴표(')로 둘러싸면 된다.
string = '"I love Python" he says.'
--> 작은따옴표 안에 사용된 큰따옴표는 문자열을 만드는 기호로 인식되지 않는다.
ii) 문자열에 작은따옴표(') 포함시키기
SeongEon's favorite language is Python.
위와 같이 작은따옴표(')가 포함된 문자열을 큰따옴표(")로 둘러싸면 된다.
string = "SeongEon's favorite language is Python."
--> 큰따옴표 안에 사용된 작은따옴표는 문자열을 만드는 기호로 인식되지 않는다.
iii) 백슬래시(\)를 사용해 큰따옴표(") 와 작은따옴표(')를 문자열에 포함시키기
string1 = ' Python\' is Easy '
string2 = " Python\" is Easy "
IV) 문자열 연산하기
1. 문자열 더해서 연결하기
a = " I Love"
b = " Python"
a + b
" I Love Python"
변수 a 와 b가 +에 의해 연결되었다.
2. 문자열 곱하기
a = 'Python'
a * 2
'pythonpython'
변수 a 가 * 2 에 의해 2번 반복 되었다.
3. 문자열 길이 구하기
a = "I Stil Love You"
len(a)
15
len 함수를 통해 문자열의 길이를 구할 수 있다.
4. 문자열 인덱싱과 슬라이싱
인덱싱(indexing)은 무엇인가 "가리킨다"는 의미이고, 슬라이싱(slicing)은 무엇인가 "잘라낸다"는 의미이다.
i) 인덱싱하기
a = 'I Stil Love You'
a 에 저장한 문자열의 각 문자보다 번호를 매겨보면 0~14 이다. (파이썬에서는 0부터 숫자를 센다.)
a[0]:'I', a[1]:' ', a[2]:'S', a[3]:'t', a[4]:'i', ...
따라서 파이썬은 위와 같이 문자열의 각 문자를 바라보고 있다.
a[-1]: 'U'
a[-2]: 'O'
a[-0]: 'I'
문자열 인덱싱에 마이너스 기호(-)를 붙이면 뒤에서 부터 센다.
이때, a[0] 은 a[-0] 과 같다.
ii) 슬라이싱하기
문자 슬라이싱에서는 단순히 한 문자만 뽑아내는 것이 아닌 'Love' 'You' 와 같은 단어를 뽑아낸다.
a = 'I Stil Love You'
a[8:12]
'Love'
a[8:12] 는 8부터 12까지의 문자를 뽑아낸다는 뜻이다.
슬라이싱 기법에서 a[시작 번호:끝 번호] 를 지정할 때 끝 번호에 해당하는 것은 포함하지 않는다. a[8:11]이 아님을 주의하자!
--> 끝 번호보다 하나 작은 수 까지를 포함함 ( cf) a[8:-5] = 'Love')
: 를 활용하여 시작 번호나 끝 번호를 생략할 수 있다.
( cf) a [:], a[1:], a[:10] )
● 슬라이싱으로 날짜 정보 나누기
a = "20220131Rainy"
year = a[:4]
day = a[4:8]
weather = a[8:]
year
'2022'
day
'0131'
weather
'Rainy'
위와 같이 활용할 수 있다.
V) 문자열 포매팅
문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다. 문자열에서 특정한 값을 바꿔야 할 경우에 문자열 포매팅 기법을 사용한다.
1. 문자 바로 대입
>>> name1 = Kevin
>>> "I Love %d" % name1
I Love Kevin
>>> name1 = Chris
>>> "I Love %d" % name1
I Love Chris
2. 숫자 바로 대입
>>> number = 7
>>> "My favorite Number is %d" % number
"My favorite Number is 7"
>>> number = 3
>>> "My favorite Number is %d" % number
"My favorite Number is 3"
3. 2개 이상의 값 넣기
>>> name = SE
>>> number = 3
>>> "I like %s . and, His favorite Number is %d" % (name, number)
"I like SE . and, His favorite Number is 3"
% 다음 괄호 안에 콤마(,)로 구분하여 각각의 값을 넣어 주면 된다.
● 문자열 포맷코드
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
숫자형과 문자열 외에도 다양한 자료형을 대입할 수 있다.
VI) 문자열 관련 함수들
문자 개수 세기(count), 위치 알려주기(find, index), 문자열 삽입(join), 소문자를 대문자로 바꾸기(upper), 대문자를 소문자로 바꾸기(lower), 오른쪽 공백 지우기(rstrip), 왼쪽 공백 지우기(lstrip), 양쪽 공백 지우기(strip), 문자열 바꾸기(replace), 문자열 나누기(split)
>>> a = "hobby"
>>> a.count('b')
2
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found // 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킴
>>> ",".join('abcd')
'a,b,c,d'
>>> a = "hi"
>>> a.upper()
'HI'
>>> a = "HI"
>>> a.lower()
'hi'
>>> a = " hi "
>>> a.lstrip()
'hi '
>>> a= " hi "
>>> a.rstrip()
' hi'
>>> a = " hi "
>>> a.strip()
'hi'
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']
'AI Developer > Python' 카테고리의 다른 글
[파이썬] 리스트와 반복문 (0) | 2022.03.23 |
---|---|
[파이썬] if~else와 elif 구문 (0) | 2022.03.23 |
[파이썬] 불 자료형과 if 조건문 (0) | 2022.03.23 |
[파이썬] 숫자와 문자열의 다양한 기능 (0) | 2022.03.23 |
[파이썬] 변수와 입력 (0) | 2022.02.20 |
댓글