학습 목표

  • 지금까지 배운 변수, 조건문, 반복문, 함수, 파일 입출력을 종합적으로 활용해본다.
  • 간단한 텍스트 기반 미니 프로젝트를 스스로 구현해보는 경험을 한다.

미니 프로젝트 기획 & 구성 이해하기

11.1 프로젝트 주제: “학생 정보 관리 프로그램”

  • 이름, 나이, 좋아하는 과목, 점수를 입력받아 저장
  • 모든 학생 정보를 파일에서 불러와 출력
  • 메뉴 선택으로 기능을 분기 (조건문 사용)

저장 파일 구조

파일명: students.txt 형식 예시:

이름: 주연, 나이: 13, 과목: 수학, 점수: 95
이름: 민수, 나이: 14, 과목: 과학, 점수: 88

11.2 기능 구성 설계

[1] 학생 정보 추가
[2] 전체 학생 정보 출력
[3] 프로그램 종료
  • 선택지 입력 후 분기 (if, elif, else)
  • 파일 저장은 append 방식으로 추가

11.3 기본 뼈대 작성

while True:
    print("\n[1] 정보 추가 [2] 전체 출력 [3] 종료")
    choice = input("메뉴를 선택하세요: ")

    if choice == "1":
        pass  # 정보 입력 및 저장
    elif choice == "2":
        pass  # 파일에서 정보 읽기
    elif choice == "3":
        print("프로그램을 종료합니다.")
        break
    else:
        print("잘못된 입력입니다.")

전체 코드 구현 및 실습

11.4 [1] 학생 정보 추가 기능

if choice == "1":
    name = input("이름: ")
    age = input("나이: ")
    subject = input("좋아하는 과목: ")
    score = input("점수: ")

    with open("students.txt", "a") as f:
        f.write(f"이름: {name}, 나이: {age}, 과목: {subject}, 점수: {score}\n")
    print("학생 정보가 저장되었습니다.")

11.5 [2] 전체 정보 출력 기능

if choice == "2":
    try:
        with open("students.txt", "r") as f:
            print("\n[전체 학생 정보]")
            print(f.read())
    except FileNotFoundError:
        print("아직 저장된 정보가 없습니다.")

11.6 전체 코드 통합

# 학생 정보 관리 프로그램

while True:
    print("\n===== 학생 정보 관리 프로그램 =====")
    print("[1] 학생 정보 추가")
    print("[2] 전체 학생 정보 출력")
    print("[3] 프로그램 종료")

    choice = input("메뉴를 선택하세요 (1~3): ")

    if choice == "1":
        # 학생 정보 입력 받기
        name = input("이름을 입력하세요: ")
        age = input("나이를 입력하세요: ")
        subject = input("좋아하는 과목을 입력하세요: ")
        score = input("점수를 입력하세요: ")

        # 파일에 저장
        with open("students.txt", "a", encoding="utf-8") as f:
            f.write(f"이름: {name}, 나이: {age}, 과목: {subject}, 점수: {score}\n")

        print(f"{name}님의 정보가 저장되었습니다.")

    elif choice == "2":
        # 파일에서 학생 정보 읽기
        try:
            with open("students.txt", "r", encoding="utf-8") as f:
                data = f.read()
                if data.strip() == "":
                    print("저장된 정보가 없습니다.")
                else:
                    print("\n[전체 학생 정보]")
                    print(data)
        except FileNotFoundError:
            print("아직 저장된 정보가 없습니다. 먼저 정보를 추가해주세요.")

    elif choice == "3":
        print("프로그램을 종료합니다.")
        break

    else:
        print("잘못된 입력입니다. 1, 2, 3 중에서 선택해주세요.")


마무리 퀴즈

  1. 사용자에게 메뉴를 반복적으로 보여주기 위해 어떤 문법을 썼나요? → while 반복문
  2. 정보를 구분해서 저장하려면 어떤 기호가 좋을까요? → 쉼표(,), 콜론(:) 등
  3. 예외 상황 처리(파일이 없을 때)를 위해 어떤 문법을 사용했나요? → try-except

다음 시간 예고

지금까지 만든 프로그램을 기반으로 더 다양한 기능(검색, 삭제, 정렬 등)을 추가해보는 심화 실습이 이어집니다.


TechTinkerer's에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

댓글 남기기

  • *Data Structures & Algorithms: Dive into Python’s Powerful T

    [튜토리얼] · 2026-01-12 04:12 UTC *Data Structures & Algorithms: Dive into Python’s Powerful T 📚 학습 목표 데이터 구조는 데이터를 저장하고 관리하는 방법입니다. Python에서는 여러 가지 데이터 구조를 사용할 수 있습니다 🎯 핵심 개념 Python Data Structures: 무엇인지 궁금하시죠? Python에는 여러 유용한 데이터 구조를 사용할 수 있습니다. 쉽게 이해하기 위해 예제와 함께 자세히 알아보도록 하겠습니다.…

  • 🎉 Python 리스트 조작 꿀팁: 효율적인 코드 작성과 읽기의 새로운 세계!

    [튜토리얼] · 2026-01-12 03:08 UTC 🎉 Python 리스트 조작 꿀팁: 효율적인 코드 작성과 읽기의 새로운 세계! 📚 학습 목표 ### SUMMARY: 이 튜토리를 통해 Python에서 리스트 조작에 대한 이해를 높이고, 멋진 코드를 더욱 효율적으로 작성할 수 있도록 도와드릴 것입니다 🎯 핵심 개념 개념 설명 코드 예제 포함 실무 팁 포함 🎉 Python 리스트 조작 꿀팁:…

  • *Python List Comprehensions: Master the Art of Concise Code*

    [튜토리얼] · 2026-01-12 02:05 UTC Python List Comprehensions: Master the Art of Concise Code 📚 학습 목표 Python 리스트 컴프레션은 프로그램 개발에 있어서 매우 유리한 기능입니다 🎯 핵심 개념 Python List Comprehensions (리스트 컴프레션)의 역할 및 장점 핵심적인 문법적 원칙과 예시 이해 실제 응용사례와 추가적인 정보 리스트 컴프레션: 코드를 단순하게 만들어 보세요! Python 리스트 컴프레션은…

  • Here are 10 programming tutorials, suitable for beginners to

    [튜토리얼] · 2026-01-12 01:01 UTC Here are 10 programming tutorials, suitable for beginners to 📚 학습 목표 데이터 분석은 요즘 매우 중요한 분야입니다. 구글 검색, 마케팅 데이터 분석 등 다양한 분야에서 사용되는데, Python을 통해 이러한 작업을 수행할 수 있는 것은 큰 도움이 됩니다 🎯 핵심 개념 Python과 데이터 분석에 대한 이해를 위한 단계별 가이드 제공…

  • *Real-time Data Visualization with Python and D3.js:** Learn

← 뒤로

응답해 주셔서 감사합니다. ✨

TechTinkerer's에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기

TechTinkerer's에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기