💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    미니프로젝트 4 | ✅ 저자: 이유정(박사)

    프로젝트 코드명: `MULTIPLE_CHIICE_QUIZ_V4 프로젝트 유형: 조건문 반복문 통합 실습 미니 프로젝트

    🖥️ 프로젝트 개요

    "간이 퀴즈 게임 시스템"
    사용자에게 간단한 퀴즈를 5개 출제하고,정답 여부에 따라 점수를 계산해 
    최종 점수를 출력하는 콘솔 기반 게임입니다.
    

    이 프로젝트를 통해 자연스럽게 적용되는 내용

    항목 사용 예시
    for문 문제 5개를 반복 출제
    while문 유효한 답변을 받을 때까지 입력 반복
    조건문 if 정답 여부 판단 / 재도전 여부 확인

    📄 기능 요구사항 (Functional Requirements)

    • 문제는 5개이며, for문으로 차례대로 출제
    • 사용자는 각 문제에 답변을 입력
    • 정답일 경우 점수 +1
    • 오답일 경우 정답을 알려줌
    • 퀴즈가 끝나면 최종 점수를 출력
    • 마지막에 "다시 하시겠습니까? (y/n)"을 입력받아 y면 다시 시작, n이면 종료

    📄 비기능 요구사항 (Non-Functional Requirements)

    • 사용자 입력은 strip()으로 앞뒤 공백 제거
    • 대소문자 구분 없이 답을 처리
    • 숫자 이외의 입력을 받을 때도 오류 없이 진행
    • 최소한의 가독성 있는 출력 형식 유지

    ✅ 출력 포맷 구성 1:

    [퀴즈 1] 파이썬에서 리스트를 만드는 기호는?  
    ① ()  ② {}  ③ []  ④ <>
    
    정답 입력: 3  
    ✅ 정답입니다!
    
    [퀴즈 2] 파이썬에서 반복문은 어떤 키워드로 시작하나요?  
    ① repeat ② loop ③ whilefor
    
    정답 입력: 4  
    ✅ 정답입니다!
    
    ...
    
    총 5문제 중 4문제를 맞혔습니다.  
    👏 잘하셨어요!
    
    다시 하시겠습니까? (y/n): y
    

    ✅ 정답 코드1: 난이도 중

    questions = [
        {
            "question": "파이썬에서 문자를 묶는 기호는 무엇인가요?",
            "options": ["[]", '""', "{}", "//"],
            "answer": 2
        },
        {
            "question": "print() 함수는 어떤 역할을 하나요?",
            "options": ["입력받기", "저장하기", "출력하기", "삭제하기"],
            "answer": 3
        },
        {
            "question": "변수는 어떤 역할을 하나요?",
            "options": ["문서 작성", "값을 저장하는 공간", "반복 실행", "조건 분기"],
            "answer": 2
        },
    ]
    
    while True:
        score = 0
    
        for idx, q in enumerate(questions):
            print(f"\n[퀴즈 {idx+1}] {q['question']}")
            for i, option in enumerate(q["options"], start=1):
                print(f"{i}. {option}")
            
            while True:
                try:
                    user_input = int(input("정답 입력 (숫자): ").strip())
                    if 1 <= user_input <= 4:
                        break
                    else:
                        print("1~4 사이 숫자를 입력해주세요.")
                except ValueError:
                    print("숫자만 입력해주세요.")
    
            if user_input == q["answer"]:
                print("✅ 정답입니다!")
                score += 1
            else:
                print(f"❌ 오답입니다. 정답은 {q['answer']}번입니다.")
    
        print(f"\n총 {len(questions)}문제 중 {score}문제를 맞혔습니다.")
    
        retry = input("다시 하시겠습니까? (y/n): ").strip().lower()
        if retry != 'y':
            print("프로그램을 종료합니다.")
            break
    

    ✅ 정답 코드2: 난이도 중상

    questions = [
        {
            "question": "파이썬에서 리스트를 만드는 기호는?",
            "options": ["()", "{}", "[]", "<>"],
            "answer": 3
        },
        {
            "question": "파이썬에서 반복문은 어떤 키워드로 시작하나요?",
            "options": ["repeat", "loop", "while", "for"],
            "answer": 4
        },
        {
            "question": "조건문을 시작하는 키워드는?",
            "options": ["if", "when", "check", "cond"],
            "answer": 1
        },
        {
            "question": "while문은 어떤 조건에서 반복을 멈추나요?",
            "options": ["무한", "False가 되면", "오류 발생 시", "리스트가 끝나면"],
            "answer": 2
        },
        {
            "question": "for문에서 range(3)의 결과는?",
            "options": ["1, 2, 3", "0, 1, 2", "0~3", "에러남"],
            "answer": 2
        },
    ]
    
    while True:
        score = 0
    
        for idx, q in enumerate(questions):
            print(f"[퀴즈 {idx+1}] {q['question']}")
            for i, option in enumerate(q["options"], start=1):
                print(f"{i}. {option}")
            
            while True:
                try:
                    user_input = int(input("정답 입력 (숫자): ").strip())
                    if 1 <= user_input <= 4:
                        break
                    else:
                        print("1~4 중에서 입력해주세요.")
                except ValueError:
                    print("숫자만 입력해주세요.")
    
            if user_input == q["answer"]:
                print("✅ 정답입니다!\n")
                score += 1
            else:
                print(f"❌ 오답입니다. 정답은 {q['answer']}번입니다.\n")
    
        print(f"총 {len(questions)}문제 중 {score}문제를 맞혔습니다.\n")
    
        retry = input("다시 하시겠습니까? (y/n): ").strip().lower()
        if retry != 'y':
            print("프로그램을 종료합니다.")
            break
    
    TOP
    preload preload