Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
Python 프로그래밍Unit 8: 모듈과 패키지Topic 2: 유용한 내장 모듈들

Topic 2: 유용한 내장 모듈들 🧰

🎯 학습 목표

파이썬에 내장된 유용한 모듈들을 사용하는 방법을 배워요!

  • random 모듈로 무작위 기능 구현하기
  • math 모듈로 수학 계산하기
  • datetime 모듈로 날짜와 시간 다루기
  • os 모듈로 시스템 작업하기

🎲 random 모듈 - 랜덤의 마법

숫자 뽑기

import random # 정수 범위에서 랜덤 선택 dice = random.randint(1, 6) print(f"주사위: {dice}") # 실수 범위에서 랜덤 선택 probability = random.random() # 0.0 ~ 1.0 print(f"확률: {probability:.2f}") # 특정 범위의 실수 score = random.uniform(0, 100) print(f"점수: {score:.1f}")

리스트에서 선택하기

import random # 하나 선택 fruits = ["사과", "바나나", "딸기", "포도", "오렌지"] today_fruit = random.choice(fruits) print(f"오늘의 과일: {today_fruit}") # 여러 개 선택 (중복 없이) winners = random.sample(fruits, 3) print(f"당첨자 3명: {winners}") # 리스트 섞기 cards = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] random.shuffle(cards) print(f"섞인 카드: {cards[:5]}...") # 처음 5장만 보기

🔢 math 모듈 - 수학의 도구상자

기본 수학 함수

import math # 제곱근과 거듭제곱 print(f"√16 = {math.sqrt(16)}") print(f"2^10 = {math.pow(2, 10)}") # 올림, 내림, 반올림 price = 12345.67 print(f"올림: {math.ceil(price)}") # 12346 print(f"내림: {math.floor(price)}") # 12345 print(f"반올림: {round(price)}") # 12346 # 절댓값 print(f"|-10| = {abs(-10)}")

고급 수학 함수

import math # 삼각함수 (라디안 단위) angle = math.pi / 4 # 45도 print(f"sin(45°) = {math.sin(angle):.3f}") # 로그 함수 print(f"log10(100) = {math.log10(100)}") # 2.0 # 팩토리얼과 조합 print(f"5! = {math.factorial(5)}") # 120 print(f"C(5,2) = {math.comb(5, 2)}") # 10 (5개 중 2개 선택)

📅 datetime 모듈 - 시간 여행자

현재 시간 다루기

import datetime # 현재 날짜와 시간 now = datetime.datetime.now() print(f"현재 시각: {now}") # 날짜만, 시간만 today = datetime.date.today() print(f"오늘 날짜: {today}") # 포맷 지정하기 formatted = now.strftime("%Y년 %m월 %d일 %H시 %M분") print(f"한국식 표현: {formatted}")

날짜 계산하기

import datetime # 며칠 후, 며칠 전 today = datetime.date.today() week_later = today + datetime.timedelta(days=7) print(f"일주일 후: {week_later}") # 생일까지 며칠? birthday = datetime.date(2024, 12, 25) # 크리스마스 days_left = (birthday - today).days print(f"크리스마스까지 {days_left}일 남았어요!") # 나이 계산 birth_year = 2000 age = today.year - birth_year print(f"{birth_year}년생은 올해 {age}살")

🖥️ os 모듈 - 시스템 관리자

기본 시스템 정보

import os # 현재 작업 디렉토리 current_dir = os.getcwd() print(f"현재 위치: {current_dir}") # 파일 목록 보기 files = os.listdir() print(f"파일 개수: {len(files)}개") # 운영체제 정보 print(f"운영체제: {os.name}") # 'nt'(Windows) 또는 'posix'(Mac/Linux)

경로 다루기

import os # 경로 합치기 (운영체제별로 자동 처리) folder = "documents" filename = "report.txt" full_path = os.path.join(folder, filename) print(f"전체 경로: {full_path}") # 파일 존재 확인 if os.path.exists("data.txt"): print("파일이 있어요!") size = os.path.getsize("data.txt") print(f"파일 크기: {size} bytes")

💪 실용적인 종합 예제

🎮 가위바위보 게임

import random def play_rps(): """가위바위보 게임""" choices = ["가위", "바위", "보"] while True: # 사용자 입력 user = input("\n가위, 바위, 보 중 하나를 선택하세요 (종료: q): ") if user == 'q': print("게임을 종료합니다!") break if user not in choices: print("잘못된 입력입니다!") continue # 컴퓨터 선택 computer = random.choice(choices) print(f"컴퓨터: {computer}") # 승부 판정 if user == computer: print("비겼습니다! 🤝") elif (user == "가위" and computer == "보") or \ (user == "바위" and computer == "가위") or \ (user == "보" and computer == "바위"): print("이겼습니다! 🎉") else: print("졌습니다... 😢") # 게임 실행 play_rps()

📊 수학 퀴즈 프로그램

import random import math def math_quiz(): """수학 퀴즈 프로그램""" score = 0 questions = 5 print("🧮 수학 퀴즈를 시작합니다!\n") for i in range(questions): # 랜덤 문제 생성 a = random.randint(1, 20) b = random.randint(1, 20) # 문제 출력 print(f"문제 {i+1}: {a} + {b} = ?") # 답 입력 try: answer = int(input("답: ")) if answer == a + b: print("정답입니다! ✅\n") score += 1 else: print(f"틀렸습니다. 정답은 {a + b}입니다. ❌\n") except ValueError: print("숫자를 입력해주세요!\n") # 결과 발표 percentage = (score / questions) * 100 print(f"결과: {questions}문제 중 {score}개 정답!") print(f"점수: {percentage:.0f}점") # 퀴즈 실행 math_quiz()

💡 퀴즈: 내장 모듈 이해도 체크

Q1. 1부터 100 사이의 랜덤 정수를 만드는 코드는?

💡 정답 확인

정답: random.randint(1, 100)

  • randint(a, b)는 a부터 b까지(b 포함) 범위의 정수를 반환해요
  • random()은 0.0~1.0 사이의 실수를 반환

Q2. 오늘부터 30일 후의 날짜를 구하는 코드는?

import datetime today = datetime.date.today() # 30일 후는?

💡 정답 확인

정답:

future = today + datetime.timedelta(days=30)

timedelta를 사용해서 날짜를 더하거나 뺄 수 있어요!

✅ 유용한 내장 모듈 마스터 체크리스트

✅ 유용한 내장 모듈 마스터 체크리스트

🚀 다음 단계

내장 모듈들을 마스터했나요? 이제 더 강력한 기능을 제공하는 외부 패키지를 설치하고 사용하는 방법을 배워볼게요!

Last updated on