A10.파이썬 간단한 프로젝트

학습 목표

이번 강의에서는 지금까지 배운 내용을 바탕으로 간단한 프로젝트를 만들어보겠습니다. 이 프로젝트를 통해 함수, 리스트, 딕셔너리, 반복문 등을 활용하여 실제 프로그램을 구현하는 방법을 익히게 됩니다.

개념 설명

프로젝트를 만들 때는 요구 사항을 정의한 후, 관련된 기능을 함수로 나누고, 필요한 데이터는 리스트나 딕셔너리 형태로 관리합니다. 사용자와의 상호작용을 통해 데이터를 입력받거나 출력하는 방법도 포함됩니다. 간단한 프로젝트는 예를 들어 할 일 목록 관리 애플리케이션, 도서 관리 시스템 또는 간단한 계산기와 같은 형태일 수 있습니다.

예제 코드

# 간단한 할 일 목록 관리 프로그램

def show_tasks(tasks):
    """현재 할 일 목록을 출력하는 함수"""
    print("\n할 일 목록:")
    for i, task in enumerate(tasks, 1):
        print(f"{i}. {task}")

def add_task(tasks):
    """새로운 할 일을 추가하는 함수"""
    task = input("추가할 할 일을 입력하세요: ")
    tasks.append(task)
    print(f"'{task}'이(가) 할 일 목록에 추가되었습니다.")

def remove_task(tasks):
    """할 일을 삭제하는 함수"""
    show_tasks(tasks)
    task_index = int(input("삭제할 할 일의 번호를 입력하세요: ")) - 1
    if 0 <= task_index < len(tasks):
        removed_task = tasks.pop(task_index)
        print(f"'{removed_task}'이(가) 삭제되었습니다.")
    else:
        print("유효하지 않은 번호입니다.")

# 메인 프로그램
def main():
    tasks = []  # 할 일 목록을 위한 리스트
    while True:
        print("\n1. 할 일 목록 보기")
        print("2. 할 일 추가")
        print("3. 할 일 삭제")
        print("4. 종료")
        choice = input("원하는 작업을 선택하세요 (1-4): ")

        if choice == "1":
            show_tasks(tasks)
        elif choice == "2":
            add_task(tasks)
        elif choice == "3":
            remove_task(tasks)
        elif choice == "4":
            print("프로그램을 종료합니다.")
            break
        else:
            print("잘못된 선택입니다. 다시 시도하세요.")

if __name__ == "__main__":
    main()  # 프로그램 시작

코드 설명

위 코드는 간단한 할 일 목록 관리 프로그램입니다. 사용자는 할 일 목록을 보고, 새로운 할 일을 추가하거나 기존 할 일을 삭제할 수 있습니다. 프로그램은 다음과 같은 구조를 가지고 있습니다:

  • show_tasks(tasks): 현재 할 일 목록을 출력하는 함수입니다.
  • add_task(tasks): 사용자가 입력한 할 일을 목록에 추가합니다.
  • remove_task(tasks): 사용자가 선택한 번호의 할 일을 목록에서 삭제합니다.
  • 메인 루프에서는 사용자로부터 작업을 선택받고 각 작업을 수행합니다.

이 프로젝트는 사용자와 상호작용하고, 관리할 데이터 구조를 리스트로 구현하여 프로그램의 조직성을 높이고 있습니다.

연습 문제

1. 현재 날짜와 시간을 할 일 목록과 함께 출력하도록 프로그램을 수정해 보세요.

2. 각 할 일에 우선순위를 부여하고, 우선순위에 따라 할 일을 정렬하여 출력하는 기능을 추가해 보세요.

연습 문제 해답

# 1번 문제: 현재 날짜와 시간 출력 추가
import datetime

def show_tasks(tasks):
    """현재 할 일 목록을 출력하는 함수"""
    print("\n할 일 목록:")
    print("현재 시간:", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  # 현재 날짜와 시간 출력
    for i, task in enumerate(tasks, 1):
        print(f"{i}. {task}")

# 기존 코드와 나머지 함수는 동일
# ... (add_task, remove_task 등)

if __name__ == "__main__":
    main()  # 프로그램 시작

# 2번 문제: 우선순위 부여 기능 추가
def add_task(tasks):
    """새로운 할 일을 추가하는 함수 (우선순위 추가)"""
    task = input("추가할 할 일을 입력하세요: ")
    priority = input("우선순위를 입력하세요 (높음/중간/낮음): ")
    tasks.append((task, priority))  # 할 일을 튜플로 추가

def show_tasks(tasks):
    """현재 할 일 목록을 출력하는 함수 (우선순위 표시)"""
    print("\n할 일 목록:")
    for i, (task, priority) in enumerate(tasks, 1):
        print(f"{i}. {task} (우선순위: {priority})")

# 메인 프로그램 유지
# ... (main 함수와 루프 구성)

댓글 쓰기

0 댓글