1) 학습 요약표
학습내용 | 설명 |
기본 자료형 | 정수, 실수, 문자열, 불리언 타입 소개 (int, float, str, bool) |
컬렉션 자료형 | list, dict, set, tuple 각각의 특징과 활용법 |
연산자 | 산술, 비교, 논리, 멤버십, 객체 비교 연산자 사용법 |
주요 함수 | type(), len() 등 기본 내장 함수 활용법 |
2) 이론 설명
기본 자료형
1. int (정수형)
- 기능 설명: 정수 값을 저장하는 자료형. 음수, 양수 모두 표현 가능.
- 동작 원리: 메모리 내 정수로 표현되며 산술 연산에 적합.
- 예제 코드:
cpu_core = 8
print(type(cpu_core))
# cpu_core 변수에 정수 8 저장
# type() 함수로 해당 변수의 자료형 출력 → <class 'int'>
2. float (실수형)
- 기능 설명: 소수점이 포함된 숫자를 표현할 때 사용
- 동작 원리: 부동소수점 방식으로 실수를 메모리에 저장
- 예제 코드:
cpu_freq = 2.5
print(type(cpu_freq)) # <class 'float'> 출력
3. str (문자열형)
- 기능 설명: 문자들의 집합으로 텍스트 데이터 표현
- 동작 원리: 문자들을 순서 있는 시퀀스로 저장
- 예제 코드:
hostname = "Router01"
print(type(hostname)) # <class 'str'> 출력
4. bool (불리언형)
- 기능 설명: 참(True)과 거짓(False)을 표현
- 동작 원리: 논리 판단에서 사용됨 (0 = False, 그 외 = True)
- 예제 코드:
is_active = True
print(type(is_active))
컬렉션 자료형
1. list (리스트)
- 기능 설명: 여러 데이터를 순서대로 저장하고 수정할 수 있는 가변 시퀀스 자료형
- 동작 원리: 내부적으로 동적 배열(Dynamic Array) 구조를 사용하여 인덱스를 통한 빠른 접근(O(1))을 지원하며, 데이터가 추가될 때 필요 시 배열 크기를 확장함.
- 실무 활용: 네트워크 장비 목록이나 로그 데이터를 순서대로 관리할 때 자주 사용됨.
- 주요 기능: 인덱싱(list[0]), 슬라이싱(list[1:3]), append(), remove(), insert(), pop() 등으로 요소 관리 가능
- 예제 코드:
devices = ["Router", "Switch", "Firewall"]
print(devices[0]) # Router
print(devices[1:3]) # ['Switch', 'Firewall']
# 요소 추가, 삭제, 수정 실습
devices.append("Access Point") # 리스트 끝에 추가
print(devices) # ['Router', 'Switch', 'Firewall', 'Access Point']
devices.remove("Switch") # 특정 요소 삭제
print(devices) # ['Router', 'Firewall', 'Access Point']
devices[0] = "Core Router" # 첫 번째 요소 수정
print(devices) # ['Core Router', 'Firewall', 'Access Point']
2. dict (딕셔너리)
- 기능 설명: 키-값 쌍으로 데이터를 저장하는 해시 기반 매핑 자료형
- 동작 원리: 키는 해시값을 기준으로 저장되며, 검색/삽입/삭제가 평균적으로 O(1) 속도로 수행됨. 동일 키 중복 시 마지막 값으로 덮어써짐.
- 실무 활용: 장비 이름을 키로, 상태/설정 정보를 값으로 매핑해 저장할 때 자주 사용됨.
- 예제 코드:
device_info = {"name": "R1", "ip": "192.168.0.1", "status": True}
print(device_info["ip"]) # 192.168.0.1
# 요소 추가 및 수정
device_info["location"] = "Seoul" # 새로운 키 추가
print(device_info)
device_info["status"] = False # 값 수정
print(device_info)
# 요소 삭제
del device_info["ip"]
print(device_info)
3. set (집합)
- 기능 설명: 중복 없는 데이터를 저장하며, 순서가 없는 컬렉션
- 동작 원리: 해시 기반으로 요소를 저장하며, 삽입 시 해시값으로 중복 여부를 검사하여 자동으로 중복 제거. 순서가 유지되지 않음.
- 실무 활용: 중복된 IP 주소, 사용자 계정 등의 중복 제거가 필요한 경우 활용.
- 예제 코드:
ips = {"192.168.0.1", "192.168.0.2", "192.168.0.1"}
print(ips) # {'192.168.0.1', '192.168.0.2'} (순서 달라질 수 있음)
# 요소 추가 및 삭제
ips.add("192.168.0.3") # 새 IP 추가
print(ips)
ips.discard("192.168.0.1") # 특정 IP 삭제 (없어도 에러 없음)
print(ips)
4. tuple (튜플)
- 기능 설명: 리스트와 유사하지만 변경이 불가능한(immutable) 시퀀스 자료형
- 동작 원리: 불변 구조로 메모리 사용량이 적으며, 해시 가능하여 dict의 키나 set의 요소로 사용 가능
- 실무 활용: 좌표, 장비 위치, 변경되면 안 되는 설정값 등 안전하게 보존해야 하는 데이터를 관리할 때 사용됨.
- 예제 코드:
location = ("Seoul", "DataCenter1")
print(location[1]) # DataCenter1
# 요소 변경 불가 예시 (오류 발생)
# location[0] = "Busan" # TypeError
# 튜플을 dict의 키로 사용
server_location = {("Seoul", "Rack1"): "Server01"}
print(server_location)
항목 | list | dict | set | tuple |
기본 구조 | [a, b, c] | {"key": value} | {a, b, c} | (a, b, c) |
저장 형태 | 값(value) 나열 | 키-값 쌍 (key-value) | 중복 없는 값 집합 | 값 나열 |
순서 존재 | O (인덱스 O) | Python 3.7부터 O (하지만 인덱스는 X) | X | O (인덱스 O) |
인덱스 접근 | O (list[0]) | X (dict["key"]만 가능) | X | O (tuple[0]) |
중복 허용 | O | 키는 중복 불가, 값은 가능 | X | O |
수정 가능 여부 | O (mutable) | O (mutable) | O (mutable) | ❌ (immutable) |
정렬 여부 | O (sort(), sorted()) | X | O (정렬하려면 sorted(set)) | O (정렬 가능, 변경은 불가) |
용도 | 순서 있는 데이터 나열 | 명확한 키로 항목 구분 | 중복 제거, 빠른 포함 검사 | 고정된 설정값, 키로 사용 |
사용 예시 | 장비 목록, 명령어 순서 | 장비 설정, 사용자 정보 | 고유 IP 주소, 중복 제거 | 위치 좌표, 딕셔너리 키 |
연산자
1. 산술 연산자- 기능 설명: 숫자형 변수 간의 덧셈, 뺄셈, 곱셈, 나눗셈 등 수학 연산 수행
- 동작 원리: +, -, *, /, //, %, ** 연산자는 내부적으로 __add__, __sub__, __mul__, __truediv__, __floordiv__, __mod__, __pow__ 등의 특수 메서드를 호출함
- 예제 코드:
print(10 + 5) # 15
print(10 / 4) # 2.5
print(2 ** 3) # 8
2. 비교 연산자
- 기능 설명: 두 값 또는 객체의 크기/동등성 등을 비교하여 True 또는 False 반환
- 동작 원리: ==, !=, >, <, >=, <= 등은 __eq__, __ne__, __gt__ 등 비교 메서드를 호출하여 판단
- 예제 코드:
print(3 > 2) # True
print(5 != 5) # False
3. 논리 연산자
- 기능 설명: 논리적 참/거짓 판단 및 조건 분기 처리
- 동작 원리: and, or, not은 불리언 값을 기반으로 단락 평가(short-circuit evaluation) 수행함
- 예제 코드:
print(True and False) # False
print(not True) # False
4. 멤버십 연산자
- 기능 설명: 특정 값이 컬렉션 자료형에 포함되어 있는지 여부 판단
- 동작 원리: 내부적으로 시퀀스나 컬렉션 객체의 __contains__() 메서드를 호출하여 포함 여부 판단
- 예제 코드:
devices = ["R1", "R2"]
print("R1" in devices) # True
print("R3" not in devices) # True
5. 객체 비교 연산자
- 기능 설명: 두 객체가 메모리상 동일한 객체인지 비교함
- 동작 원리: is, is not은 두 객체의 메모리 주소(id)가 같은지를 비교함 (id(a) == id(b) 기준)
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # True (같은 객체)
print(a is c) # False (내용은 같지만 다른 객체)
주요 함수
type() 함수
- 기능: 변수의 자료형 반환.
- 동작 원리: 객체의 __class__ 속성을 참조해 자료형 확인.
- 예제:
print(type("hello")) # <class 'str'>
len() 함수
- 기능: 길이 반환.
- 동작 원리: 객체의 __len__() 메서드 호출, 시퀀스는 요소 개수, 매핑은 키 개수 반환.
- 예제:
print(len([1, 2, 3])) # 3
3) 기본 실습 과제 (5개)
1. 리스트에 장비 추가/삭제/수정 후 출력

2. 딕셔너리에 키 추가와 값 수정 후 출력

3. 집합을 사용하여 중복된 IP 제거

4. 튜플을 dict 키로 활용

5. 문자열과 리스트 길이 출력
'파이썬 > 기초 학습' 카테고리의 다른 글
Day 6: 조건문 & 반복문 추가학습 (2) | 2025.08.01 |
---|---|
Day 5: 반복문(while,for) 추가 학습 (3) | 2025.07.30 |
Day 4: List,Dictionary,Set,Tuple 추가 학습 (2) | 2025.07.26 |
Day 3: 함수 정의 & 파일 처리 학습 (3) | 2025.07.24 |
Day 2: 조건문 & 반복문 + 입력 처리 (2) | 2025.07.21 |