Python
파이썬의 특징
| 타입 명시하지 않음, 모두가 객체(클래스에서 파생)
| Python은 동적 타이핑 언어로 변수의 타입을 명시하지 않습니다.
| 모든 것이 객체이며, 클래스의 인스턴스로서 메서드를 가질 수 있습니다.
| 파이썬은 변수에 값이 들어가면 타입이 정해집니다.
python
# 변수 타입을 명시하지 않음.
x = 10;
print(x, type(x)) # 10
x = "Hello, World!"
print(x, type(x)) # Hello, World!
파이썬 자료형
int | str | list |
dict | set | tuple |
| 외적으로도 많지만, 중요한 것 6개만 작성했습니다
✅
| #bool : 참, 거짓을 대문자로 받습니다. (C , Java : 소문자)
| Bool 형태를 숫자로 하면 True은 1, False는 0으로 변환
| Bool 형태에서 산술 연산도 가능합니다.
python
b = True
c = False
print(int(b))
print(int(c))
print(b==1)
print(b+1)
▶️
1
0
True
2
✅ 문자 형태
| lower() : 문자열을 소문자로 변환합니다.
| upper() : 문자열을 대문자로 변환합니다.
| split('기준문자') : 기준 문자로 문자열을 쪼개서 배열로 만듭니다.
| "기준문자".join : 기준 문자로 배열을 문자로 만듭니다.
| .replace('첫번째', '두번째') : 첫 번째 문자를 두 번째 문자로 바꿔서 반환해줍니다.
| find(sub) : 부분 문자열 sub가 처음 나타나는 위치를 찾습니다. sub가 존재하지 않는 경우 -1을 반환
| index(sub) : 위와 같습니다. 문자가 존재하지 않는 경우 에러를 발생합니다.
python
s = "Hello, World!"
print(s.lower())
print(s.upper())
print(s.split(','))
print(','.join(['Hello', 'World']))
print(s.replace('World', 'Python'))
print(s.find('World'))
print(s.index(','))
print("문자 예제")
▶️
hello, world!
HELLO, WORLD!
['Hello', ' World!']
Hello,World
Hello, Python!
7
5
✅
| capitalize() : 문자열의 첫 글자를 대문자로 변환합니다.
| casefold() : 문자열을 소문자로 변환합니다.
| count(sub, start=0, end=None) : 부분 문자열이 문자열에서 등장하는 횟수를 셉니다.
| endswith(suffix, start=0, end=None) : 문자열이 지정된 접미사로 끝나는지 확인합니다.
| isdigit() : 문자열이 숫자로만 이루어져 있는지 확인합니다.
| lstrip(chars=None) : 문자열의 왼쪽 끝에서 지정된 문자를 제거합니다.
| partition(sep) : 문자열을 지정된 구분자를 기준으로 세 부분으로 나눕니다.
| swapcase() : 문자열의 대문자를 소문자로, 소문자를 대문자로 변환합니다.
| splitlines(keepends=False) : 줄바꿈을 기준으로 문자열을 분할하여 리스트로 반환합니다.
| startswith(prefix, start=0,end=None) : 문자열이 지정된 접두사로 시작하는지 확인합니다.
| title() : 문자열을 제목 형식으로 변환합니다.
| zfill(width) : 문자열의 길이가 'width'에 도달할 때까지 왼쪽을 0으로 채웁니다.
python
print(s.capitalize())
print(s.casefold())
print(s.count('o'))
print(s.endswith('!'))
print("123".isdigit())
print(" Hello".lstrip())
print(s.partition(','))
print(s.swapcase())
s_lines = "Hello\nWorld"
print(s_lines.splitlines())
print(s.startswith('Hello'))
print(s.title())
print("42".zfill(5))
✅ 리스트형
| 변수명 = [ 자료 , 자료 ] * 자료에는 문자열이 들어올 수 있고, 숫자가 들어올 수 있고, 또 다른 리스트가 들어올 수 있음.
| 온갖 형태가 한 번에 다 들어갈 수 있습니다.
python
lst = [1,2,3]
lst.append(4)
lst.extend([5,6])
lst.insert(2,7)
lst.remove(7)
print(lst.pop())
lst.clear()
lst=[1,2,3,2]
print(lst.index(2))
print(lst.count(2))
lst.sort()
lst.reverse()
lst_copy = lst.copy()
✅
| append() : 리스트 요소에 추가
| extend([]) : 다른 리스트를 가져와서 확장 시킬 수 있습니다.
| insert() : 지정된 위치에 요소를 추가 합니다.
| remove() : 해당 값을 삭제 합니다.
| pop() : 가장 뒤에 있는 요소를 빼서 반환합니다.
| clear() : 모든 요소 삭제합니다.
| index() : 해당 값이 첫 번째로 나오는 위치를 찾습니다.
| count() : 해당 값이 몇 개 들어있는지 확인합니다.
| sort() : 낮은거 부터 큰거로 정렬을 합니다.
| reverse() : 위 sort와 반대로 정렬을 합니다.
| copy() : 배열을 복사합니다.
▶️
[1, 2, 3, 4]
[1, 2, 3, 4, 5, 6]
[1, 2, 7, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
6
[1, 2, 3, 4, 5]
[]
1
2
[1, 2, 2, 3]
[3, 2, 2, 1]
[3, 2, 2, 1]
dict
dict | 사전형태 | 키:값 한쌍 | 값을 키를 통해 접근 |
set | 집합 | 순서가 없음 | 중복이 안됨 |
tuple | 불변의 묶음 | 항목을 바꿀 수 없음 | 한개짜리도 만들 수 있음 |
사전형(Dictionary)
| 키-값 쌍으로 이루어진 데이터구조입니다.
| 키는 고유해야 하며, 변경 불가능한 데이터 타입이어야 합니다. (문자열, 숫자, 튜플)
| 값은 변경 가능하며, 어떠한 데이터 타입도 될 수 있습니다.
python
#Dictionary 선언
my_dict = {
"name" : "WeekendCode",
"age" : 30,
"city" : "Seoul"
}
#특정 키의 값 접근
print(my_dict["name"])
#키-값 쌍 추가 또는 수정
my_dict["age"] = 31
my_dict["job"] = "Engineer"
#키-값 쌍 삭제
del my_dict["city"]
print(my_dict)
✅
| 값에 접근 하려면 변수명["키값"]으로 접근해야 값을 얻을 수 있습니다.
Set
고유한 값들의 집합.
순서가 없으며, 중복된 값을 허용하지 않습니다.
✅ 순서가 없기 때문에 인덱스로 접근할 수 없으며,
| 중복값을 아무리 넣어도, 출력하면 고유하게 1개만 나옵니다.
python
#Set 선언
my_set = {1, 2, 3, 4, 5}
#값 추가
my_set.add(6)
#값 삭제
my_set.remove(3)
#다른 집합과의 연산(합집합, 교집합 등)
another_set = {4, 5, 6, 7}
union_set = my_set | anoter_set
intersection_set = my_set & another_set
print(union_set)
print(intersection_set)
▶️
| {1,2,4,5,6,7}
| {4,5,6}
✅ Set의 다양한 메서드
| 선언 my_set = {1,2,3,4,5}
| add() : my_set.add(6) -> {1,2,3,4,5,6}
| remove() : my_set.remove(3) -> {1,2,4,5,6}
| discard() : my_set.discard(2), my_set.discard(10) -> {1,4,5,6}
| discard는 삭제하려는 요소가 없어도 오류가 발생하지 않습니다.
| union() : another_set = {5,6,7,8}
| union_set = my_set.union(another_set) -> {1,4,5,6,7,8}
| intersection() : intersection_set = my_set.intersection(another_set) -> {5,6}
| difference() : difference_set = my_set.difference(another_set) -> {1,4}
| clear() : my_set.clear() -> {}
튜플형(Tuple)
순서가 있는 데이터 구조입니다.
변경이 불가능합니다. (Immutable)
중복된 값을 허용합니다.
앞에 두 개의 타입과 달리 타입을 선언할 때 소괄호()를 사용합니다.
python
my_tuple = (1,2,3,4,5)
#Tuple 선언(원소 하나일 때)
single_element_tuple = (1,) #쉼표가 필요합니다.
#Tuple 출력
print(my_tuple)
print(single_element_tuple)
#특정 원소 접근
print(my_tuple[0])
#여러 개의 원소를 가지는 튜플
multi_element_tuple = (1,2,3)
print(multi_element_tuple)
✅
| 1개 요소 튜플도 만들 수 있으나 값 뒤에 쉼표가 붙지 않으면 튜플로 인식하지 않습니다.
▶️
| (1,2,3,4,5)
| (1,)
| 1
| (1,2,3)
✅ Tuper 메서드 : 변경 불가능한 특성 때문에 메서드가 많지 않습니다.
| my_tuple = (1,2,3,4,5,3)
| count() : count_of_3 = my_tuple.count(3) -> 2
| index() : index_of_4 = my_tuple.index(4) -> 3
문자열 슬라이싱
파이썬에서 문자열 슬라이싱(String Slicing)은 문자열의 특정 부분을 추출하는 기법입니다.
문자열은 인덱스를 사용하여 접근할 수 있으며, 슬라이싱은 콜론(:)을 사용하여 인덱스 범위를 지정합니다.
✅ substring = string[start:end]
| start : 슬라이스의 시작 인덱스 (포함)
| end : 슬라이스의 끝 인덱스 (미포함)
python start, end 인덱스가 둘 다 있는 경우
string = "Hello, World!"
sliced_variable = string[0:5]
▶️ Hello
✅
| 인덱스는 0부터 시작합니다.
| 두 번째 인덱싱은 포함하지 않습니다.
python start 인덱스만 있는 경우
string = "Hello, World!"
substring = string[7:]
▶️ World!
✅
| 앞에 숫자가 있고, 뒤가 비어 있으면 시작점만 있습니다.
python end 인덱스만 있는 경우
string = "Hello, World!"
substring = string[:5]
▶️ Hello
✅
| 앞 부분 인덱스가 비어있으면 처음부터 시작합니다.
python 음수 인덱스를 사용
string = "Hello, World!"
substring = string[-6:-1]
▶️World
✅
| 마이너스 슬라이싱은 뒤에서부터 시작합니다.
| 뒤는 0이 없습니다. -1부터 시작.
| -6은 !를 포함하여 시작하여 W에 해당하며, -1은 !이지만 두 번째 인덱스는 포함하지 않으므로 World가 출력.
📢
| 모든 강의 내용이 정리되어 있지 않습니다.
| 출처 : 주말코딩 정보처리기사 (인프런)
'잡다한 공부' 카테고리의 다른 글
[정보처리기사] SQL 기본 문법 (1) | 2025.03.19 |
---|---|
[정보처리기사] 비트(bit)연산자 (1) | 2025.03.07 |
[정보처리기사] 정처기 자바 (1) | 2025.02.26 |
C언어 전처리 지시문과 #define (0) | 2025.02.21 |
[정보처리기사] 정처기 실기 매크로, 비트연산 (2) | 2025.02.18 |