02-1. 숫자형
: 숫자 형태로 이루어진 자료형
정수 int | 1, 2, -2, 0 |
실수 float | 1.24, -34.56 |
컴퓨터식 지수 표현 방식 (이것도 실수) | 4.24e10, 4.24e-10 |
8진수 (octal) | 0o37 |
16진수 (hexadecimal) | 0x7A |
기본적으로 정수와 실수 2가지만 알고 있어도 충분하다.
◎ 숫자형 활용 연산
+, -, *, / | 사칙연산 : 덧셈, 뺄셈, 곱셈, 나눗셈 |
x ** y | x의 y제곱 ex) 3**4 : 3의 4승 |
// | 몫 구하기 ex) 7 // 4 -> 1 |
% | 나머지 구하기 ex) 7 % 3 -> 1 |
2. 문자열 (string)
: 문자, 단어 등으로 구성된 문자들의 집합
"Life is too short, You need Python"
"a"
"123"
◎ 문자열을 만드는 방법
파이썬에는 문자열을 만드는 방법이 총 4가지가 있다.
작은 따옴표, 큰 따옴표 어느 것을 사용해도 무방하며
다만 주의할 점은 따옴표의 짝을 맞춰야한다.
작은 따옴표, 큰 따옴표의 혼용은 안된다.
# 1. 큰 따옴표로 양쪽 둘러싸기
"Hello World"
# 2. 작은 따옴표로 양쪽 둘러싸기
'Python is fun'
# 3. 큰 따옴표 3개를 연속으로 써서 양쪽 둘러싸기
"""Life is too short, You need python"""
# 4. 작은 따옴표 3개를 연속으로 써서 양쪽 둘러싸기
'''Life is too short, You need python'''
◎ 문자열 안에 따옴표 포함하기
# 1. 문자열에 작은 따옴표 포함 -> 큰 따옴표 사용
food = "Python's favorite food is perl"
# 2. 문자열에 큰 따옴표 포함 -> 작은 따옴표 사용
say = '"Python is very easy." he says.'
# 3. 역슬래시 사용
food = 'Python\'s favorite food is perl'
say = "\"Python is very easy.\" he says."
◎ 여러 줄의 문자열을 변수에 대입하기
# 1. 이스케이프 코드 \n 활용
multiline = "Life is too short\nYou need python"
# 2. 연속된 따옴표 3개
multiline='''Life is too short
You need python'''
multiline="""Life is too short
You need python"""
print(multiline)을 입력하면
다음과 같은 결과가 나오는 것을 알 수 있다.
* 이스케이프 코드 : 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'
\n : 줄바꿈
\t : 탭
\\ : \를 그대로 표현
\', \" : '와 "를 그대로 표현
◎ 문자열 연산
1. 더하기 : 문자열을 연결
head = "Python"
tail = " is fun!"
head + tail
결과 : Python is fun!
2. 곱하기 : 문자열의 반복
a = "python"
a * 2
결과 : pythonpython
◎ 문자열 길이 구하기 : len
- length를 의미
a = "Life is too short"
len(a) # 17
- 길이에는 공백 문자도 포함
◎ 문자열 인덱싱과 슬라이싱
1. 인덱싱 : 문자열 안의 특정 값에 번호를 붙이고 뽑아내는 것
a = "Life is too short, You need Python"
가 있다고 해보자. 문자열 안의 각 문자가 가지는 번호는 다음과 같다.
따라서,
a[0] : 'L'
a[1] : 'i'
a[2] : 'f'
a[3] : 'e'
a[4] : ' '
......
이렇게 번호를 가진다.
중요한 건 ★ 파이썬은 0부터 숫자를 센다 ★는 것이다.
뒤에서부터 읽을 수도 있는데, 이때는 빼기('-') 기호를 붙여준다.
a[-1] : 'n'
a[-2] : 'o'
a[-5] : 'y'
* a[-0]은 a[0]과 같은 값이다.
2. 슬라이싱 : 문자열을 덩어리로 뽑아내는 것
a[ 시작번호 : 끝번호 ]
a[ 시작번호 : 끝번호 : 간격]
이때 주의할 점은 끝 번호에 해당하는 문자는 포함하지 않는다.
위의 예시를 통해 살펴보면 다음과 같다.
a = "Life is too short, You need Python"
print(a[0:4]) # 'Life'
print(a[0:3]) # 'Lif'
a[0:4]는 0이상 4미만, 즉 a[0]부터 a[3]까지의 문자를 의미하고 (0 <= a < 4)
a[0:3]은 0이상 3미만, 즉 a[0]부터 a[2]까지의 문자를 의미한다. (0 <= a < 3)
<슬라이싱 응용>
- 슬라이싱할 때 항상 시작 번호가 0일 필요는 없다.
a[5:7] # is
a[12:17] # short
- 끝 번호 부분을 생략하면 시작 번호부터 끝까지 뽑아낸다.
a[19:] # You need Python
- 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.
[a:17] # Life is too short
- 시작 번호, 끝 번호 모두 생략하면 문자여르이 처음부터 끝까지 뽑아 낸다.
a[:] # Life is too short, You need Python
- 슬라이싱에도 -(빼기) 기호를 사용할 수 있다.
a[19:-7] # You need
위의 예시에서는 a[-8]까지를 의미함. a[-7]은 포함X
◎ 문자열 포매팅
: 문자열 안에 어떤 값을 삽입하는 방법
1. % 사용
"I eat %d apples." % 3 # I eat 3 apples.
"I eat %s apples." % "five" # I eat five apples.
# 2개 이상의 값 넣기
number = 10
day = "three"
"I ate %d apples. so I was sick for %s days." % (number, day) # I ate 10 apples. so I was sick for three days.
<문자열 포맷 코드>
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | % 문자 자체 |
여기서 %s는 어떤 형태의 값이든 변환해 넣을 수 있다. % 뒤에 정수가 오든 , 실수가 오든 문자열로 바꾸어 대입한다.
2. format 함수 이용
"I eat {0} apples".format(3) # I eat 3 apples
"I eat {0} apples".format("five") # I eat five apples
# 2개 이상의 값 넣기
number = 10
day = "three"
"I ate {0} apples. so I was sick for {1} days.".format(number, day) # 결과 : I ate 10 apples. so I was sick for three days.
마지막 2개 이상의 값 넣기 예제는
"I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
처럼 name=value 형태로 사용이 가능하다.
중괄호 { } 를 문자 그대로 사용하고 싶을 경우 {{ }}처럼 2개를 연속해서 사용한다.
"{{ and }}".format # { and }
3. f 문자열 포매팅 ★
- 파이썬 3.6버전부터 사용 가능
- 이것만 기억하면 문자열 포매팅은 끝! 가장 깔끔한 최신 문법임.
name = '홍길동'
age = 30
f'나의 이름은 {name}입니다. 나이는 {age}입니다.' # 나의 이름은 홍길동입니다. 나이는 30입니다.
표현식을 지원하기 때문에 중괄호 안에서 연산도 가능하다.
age = 30
f'나는 내년이면 {age + 1}살이 된다.' # 나는 내년이면 31살이 된다.
** 문법을 달달 외우는 건 비효율적
◎ 문자열 관련 함수(메서드)
count | 문자 개수 세기 |
find | 특정 문자가 처음으로 나온 위치 반환. 찾는 문자가 없을 경우 -1 반환 |
index | 특정 문자가 처음으로 나온 위치 반환. 찾는 문자가 없을 경우 오류 출력 |
join | 문자열의 각 문자 사이에 특정 문자(열) 삽입 |
upper | 소문자 -> 대문자 |
lower | 대문자 -> 소문자 |
lstrip | 왼쪽 공백 지우기 |
rstrip | 오른쪽 공백 지우기 |
strip | 양쪽 공백 지우기 |
replace | 문자열 교체. replace(바뀔 문자열, 바꿀 문자열) |
split | 문자열 나누기. - 디폴트 값 : 공백 - 특정 문자를 기준으로 쪼개고 싶을 때, split 안의 괄호에 문자를 삽입한다. ex: split(':') - 쪼개면 리스트 형태로 나온다. |
3. 리스트
= 서랍.
대괄호 []를 사용하고, 각 요솟값은 쉼표(,)로 구분해준다.
odd = [1, 3, 5, 7, 9]
서로 다른 타입의 값을 포함할 수 있다.
ex) e = [1, 2, 'Life', 'is']
◎ 인덱싱과 슬라이싱
리스트의 인덱싱과 슬라이싱 문법은 문자열과 유사하다.
◎ 리스트 연산
+ | 리스트 추가 |
* | 리스트 반복 |
◎ 리스트 길이 구하기 : len
a = [1, 2, 3]
len(a) # 3
* string : 문자열 (문자 + 리스트(배열))
* char : 문자
◎ 리스트의 수정과 삭제
리스트 안의 값은 자유롭게 수정과 삭제가 가능하다.
- 수정
a = [1,2,3]
a[2] = 4 # a -> [1, 2, 4]
- 삭제
a = [1,2,3]
del a[1] # a -> [1,3]
del a[x] : x번째 요솟값 삭제
◎ 리스트 관련 함수
append | 리스트에 요소 추가. - 맨 뒤에 추가함. 리스트도 추가 가능 |
sort | 리스트 정렬 (숫자 뿐만 아니라 문자도 정렬 가능) |
reverse | 리스트 뒤집기 |
index(x) | x의 인덱스 값 반환 |
insert(a, b) | 리스트의 a번째 위치에 b값 삽 |
remove(x) | 리스트에서 첫 번째로 나오는 x를 삭제 |
pop | 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제 * pop(x) : x번째 인덱스 값을 pop |
count(x) | 리스트 안에 있는 x의 개수 |
extend(x) | 리스트 확장 (x에는 리스트만 올 수 잇음) |
※ 참고 자료
동영상 강의 : https://youtu.be/zAkAZjmnS3c?list=PLU9-uwewPMe05-khW3YcDEaHMk_qA-7lI
위키 독스 : https://wikidocs.net/12
'Programming > 파이썬 문법 (점프 투 파이썬)' 카테고리의 다른 글
[01장] 파이썬이란 무엇인가? (1) | 2023.09.12 |
---|---|
파이썬 기초 공부 시작 (1) | 2023.07.14 |