1. 파이썬 예제 코드: 변수와 자료형
1.1. 기초 파이썬 예시 코드 (5개)
기초 예제는 변수 선언과 기본 자료형(숫자, 문자열, 불리언)의 사용법을 다룹니다.
1. 다양한 자료형의 변수 선언
# 정수(Integer)
age = 25
# 실수(Float)
height = 175.5
# 문자열(String)
name = "인수샘"
# 불리언(Boolean)
is_student = True
print(name, "님의 나이는", age, "살, 키는", height, "cm, 학생 여부:", is_student)
2. 숫자 자료형 연산
a = 15
b = 4
print(f"{a} + {b} = {a + b}") # 덧셈: 19
print(f"{a} - {b} = {a - b}") # 뺄셈: 11
print(f"{a} * {b} = {a * b}") # 곱셈: 60
print(f"{a} / {b} = {a / b}") # 나눗셈: 3.75
print(f"{a} // {b} = {a // b}") # 몫: 3
print(f"{a} % {b} = {a % b}") # 나머지: 3
print(f"{a} ** 2 = {a ** 2}") # 거듭제곱: 225
3. 문자열 자료형 다루기
# 문자열 연결
first_name = "길동"
last_name = "홍"
full_name = last_name + first_name
print("전체 이름:", full_name)
# 문자열 반복
greeting = "안녕하세요! "
print(greeting * 3)
# 문자열 길이 구하기
long_text = "Python is powerful"
print("문자열 길이:", len(long_text))
4. type() 함수로 자료형 확인
# type() 함수는 변수가 어떤 자료형인지 알려줍니다.
num_var = 100
str_var = "100"
float_var = 100.0
print(f"변수 num_var의 자료형은: {type(num_var)}")
print(f"변수 str_var의 자료형은: {type(str_var)}")
print(f"변수 float_var의 자료형은: {type(float_var)}")
5. 자료형 변환 (Type Casting)
# 다른 자료형으로 강제 변환할 수 있습니다.
num_str = "123"
num_int = int(num_str) # 문자열을 정수로
print(f"문자열 '{num_str}' -> 정수: {num_int}")
num = 10
float_num = float(num) # 정수를 실수로
print(f"정수 {num} -> 실수: {float_num}")
age = 30
message = "제 나이는 " + str(age) + "살입니다." # 정수를 문자열로
print(message)
1.2. 응용 파이썬 예시 코드 (5개)
응용 예제는 리스트, 튜플, 딕셔너리 등 여러 데이터를 묶어서 관리하는 컬렉션 자료형을 다룹니다.
1. 리스트 (List) 생성 및 수정
# 리스트는 순서가 있고, 값의 생성, 수정, 삭제가 가능한 가변(mutable) 자료형입니다.
fruits = ["사과", "바나나", "딸기"]
print("초기 리스트:", fruits)
# 요소 추가
fruits.append("오렌지")
print("추가 후:", fruits)
# 요소 변경
fruits[1] = "망고"
print("변경 후:", fruits)
# 요소 삭제
removed_fruit = fruits.pop(2)
print(f"'{removed_fruit}' 삭제 후:", fruits)
2. 튜플 (Tuple) 사용
# 튜플은 순서가 있지만, 생성 후에는 값을 변경할 수 없는 불변(immutable) 자료형입니다.
person = ("구운몽", 30, "서울")
print(f"이름: {person[0]}, 나이: {person[1]}")
# 튜플 값 변경 시도 (TypeError 발생)
# person[1] = 31
# 튜플 패킹/언패킹
name, age, city = person
print(f"언패킹 -> 이름: {name}, 나이: {age}, 도시: {city}")
3. 딕셔너리 (Dictionary) 활용
# 딕셔너리는 Key와 Value를 쌍으로 묶어 관리합니다.
student = {
"name": "홍길동",
"id": 20260319,
"major": "컴퓨터공학"
}
print("학생 이름:", student["name"])
# 새로운 Key-Value 추가
student["gpa"] = 4.3
print("GPA 추가:", student)
# 값 변경
student["major"] = "인공지능학과"
print("전공 변경:", student)
4. 집합 (Set) 자료형과 연산
# 집합은 순서가 없고, 중복된 값을 허용하지 않습니다.
set_a = {1, 2, 3, 4, 4, 5}
set_b = {4, 5, 6, 7}
print("Set A:", set_a) # 중복된 4는 하나만 저장됨
# 교집합 (&)
print("교집합:", set_a & set_b)
# 합집합 (|)
print("합집합:", set_a | set_b)
# 차집합 (-)
print("차집합 (A-B):", set_a - set_b)
5. f-string을 이용한 복잡한 문자열 포매팅
# f-string을 사용하면 변수와 계산식을 문자열 안에 바로 넣을 수 있습니다.
name = "인수샘"
age = 30
pi = 3.141592
print(f"제 이름은 {name}이고, 내년엔 {age + 1}살이 됩니다.")
print(f"원주율(pi)을 소수점 둘째 자리까지 표현하면 {pi:.2f}입니다.")
1.3. 심화 파이썬 예시 코드 (5개)
심화 예제는 파이썬의 특수한 자료형과 고급 개념을 다룹니다.
1. None 자료형
# None은 '값이 없음'을 나타내며, 초기화 시 주로 사용됩니다.
my_variable = None
print(my_variable)
if my_variable is None:
print("my_variable에는 아직 값이 할당되지 않았습니다.")
# 함수가 명시적으로 값을 반환하지 않으면 None을 반환합니다.
def no_return_func():
print("이 함수는 아무것도 반환하지 않습니다.")
result = no_return_func()
print("함수 결과:", result)
2. 바이트(bytes)와 바이트배열(bytearray)
# 이진 데이터를 다룰 때 사용됩니다. bytes는 불변, bytearray는 가변입니다.
my_bytes = bytes([72, 101, 108, 108, 111]) # [H, e, l, l, o]
print("바이트 객체:", my_bytes)
print("디코딩 결과:", my_bytes.decode('utf-8'))
my_byte_array = bytearray(b"Hello World")
my_byte_array[6] = ord('P') # ord()는 문자를 아스키 코드로 변환
my_byte_array[7] = ord('y')
print("바이트배열 수정 후:", my_byte_array.decode('utf-8'))
3. 복소수 (Complex Number) 자료형
c1 = 3 + 4j
c2 = complex(2, -5)
print(f"c1: {c1}, c2: {c2}")
print(f"c1의 실수부: {c1.real}, 허수부: {c1.imag}")
print(f"c1 + c2 = {c1 + c2}")
print(f"c1 * c2 = {c1 * c2}")
4. frozenset 자료형
# 변경할 수 없는 버전의 집합으로, 딕셔너리의 키가 될 수 있습니다.
my_set = {1, 2, 3}
frozen_set = frozenset([3, 4, 5])
print("일반 집합:", my_set)
print("frozenset:", frozen_set)
# 딕셔너리의 키로 사용
valid_key_dict = {frozen_set: "값"}
print(valid_key_dict)
5. collections.namedtuple 사용하기
# 각 요소에 이름을 부여하여 가독성을 높인 튜플입니다.
from collections import namedtuple
# 'Point'라는 이름의 namedtuple 정의
Point = namedtuple('Point', ['x', 'y', 'z'])
p1 = Point(10, 20, 30)
print(f"점 p1의 좌표: {p1}")
print(f"p1의 x좌표: {p1.x}") # 이름으로 접근 가능
print(f"p1의 y좌표: {p1.y}")
print(f"p1의 z좌표: {p1.z}")