본문 바로가기
IT 이것저것/파이썬python

초보자를 위한 파이썬 프로그래밍: 간단한 퀴즈 앱을 만들자

by KaNonx카논 2025. 2. 3.
반응형

초보자를 위한 파이썬 프로그래밍: 간단한 퀴즈 앱을 만들자

초보자를 위한 파이썬 프로그래밍은 재미있어야 합니다. 

 

무작위 퀴즈와 게임을 좋아하는 사람으로서 퀴즈 앱을 만드는 것은 파이썬에서 

멋진 개념을 배울 수 있는 재미있고 흥미로운 방법입니다. 

 

이 앱을 만드는 데 필요한 것이 무엇인지 살펴보겠습니다.

 

 

2025.01.04-파이썬을 사용한 초보 코딩: 주사위 굴리기 시뮬레이터 개발


초보자를 위한 파이썬 프로그래밍 시작하기

파이썬은 세계에서 가장 많이 사용되는 언어 중 하나이며, 초보자에게는 쉬운 출발점입니다. 

 

이 도구는 매우 간단해서 이미 파이썬으로 간단한 할 일 목록을 작성했으며,

요소를 추가하고 제거할 수 있습니다.

 

이 프로젝트는 조금 더 복잡하겠지만, 시작 단계는 동일합니다.

IDE를 다운로드하고 설정하지 않았다면 비교적 간단합니다. 

 

대부분의 사용자는 Windows 또는 Linux에서 Python을 실행하지만 Mac 버전도 있습니다.

 

시스템에 Python이 있는지 확실하지 않은 경우 명령줄에서 버전을 확인할 수 있습니다. 

버전 번호를 통해 파이썬이 있는지 여부와 설치한 언어의 버전을 알 수 있습니다.

저는 Windows용 Python을 사용하고 있으며, 

이미 제가 선택한 IDE(Visual Studio)로 Python을 설정하는 방법에 대한 세부 정보를 제공했습니다. 

 

상쾌함을 위해 다음과 같은 단계가 있습니다:

 


운영 체제에 Python을 설치합니다.
IDE(Visual Studio, 제 경우에는)를 설치하세요.
버전을 확인하여 Python이 올바르게 설치되었는지 확인합니다.
새 프로젝트를 시작합니다.
이제 기본 설정을 완료했으니 실제로 애플리케이션을 구축할 수 있습니다!



맞춤형 질문 구조 설정

퀴즈 앱이기 때문에 질문과 답변을 저장할 무언가가 필요합니다. 

이를 위해 다음 형식으로 맞춤형 질문 구조를 설정합니다:

"question": <insert question here>,
"options": [<comma-separated list of strings>],
"correct_answer": <string from the list that corresponds to the right answer>

 

 

이를 위해 다섯 개의 질문으로 구성된 테스트 베드를 구성하고,

그 중에서 질문이 나타나는 순서를 무작위로 추출할 것입니다:

# Quiz questions
questions = [
    {
        "question": "What is the capital of France?",
        "options": ["London", "Berlin", "Paris", "Madrid"],
        "correct_answer": "Paris"
    },
    {
        "question": "Which planet is known as the Red Planet?",
        "options": ["Mars", "Venus", "Jupiter", "Saturn"],
        "correct_answer": "Mars"
    },
    {
        "question": "What is the chemical symbol for Potassium?",
        "options": ["P", "Po", "K", "Li"],
        "correct_answer": "K"
    },
    {
        "question": "What year was Abraham Lincoln born?",
        "options": ["1909", "1811", "1809", "1776"],
        "correct_answer": "1809"
    },
    {
        "question": "What is the geographical name for a rainforest?",
        "options": ["Taiga", "Badlands", "Selvas", "Hardpan"],
        "correct_answer": "Selvas"
    }
]

이러한 구조를 사전이라고 합니다. 

모든 프로그래밍 언어의 사전은 키-값 쌍의 모음입니다. 

 

사전에서 해당 키를 검색하면 특정 키에 연결된 값을 찾을 수 있습니다.

 

질문 배열을 섞을 수 있도록 무작위 라이브러리도 가져와야 합니다. 

이를 위해 코드 상단에 이 줄을 포함하겠습니다:

 

import random

가져오기 키워드를 사용하면 필요한 라이브러리를 " 가져올" 수 있습니다. 

 

이 경우, 목록과 배열을 무작위로 만드는 데 유용한 함수가 포함된 랜덤 라이브러리를 가져옵니다.

코드를 이렇게 재사용하는 것은 파이썬에서 가장 강력한 부분 중 하나입니다. 

 

필요한 것이 있다면, 아마도 당신이 찾고 있는 기능을 갖춘 도서관이 어딘가에 있을 것입니다.

 


질문 표시 및 답변 받기

이제 우리가 물어볼 질문들을 해결했으니, 사용자에게 그 질문들을 어떻게 보여주고 

그들로부터 답을 얻어야 합니다. 

 

이를 위해 두 가지 함수를 정의하겠습니다:

#Function for displaying the questions to the screen
def display_question(question):
    print(question["question"])
    for i, option in enumerate(question["options"], 1):
        print(f"{i}. {option}")

#Function for getting user input
def get_user_answer():
    while True:
        try:
            choice = int(input("Enter your answer (1-4): "))
            if 1 <= choice <= 4:
                return choice - 1
            else:
                print("Please enter a number between 1 and 4.")
        except ValueError:
            print("Invalid input. Please enter a number.")

 

이 기능들을 개별적으로 검토하고 그 목적을 결정해 보겠습니다. 

 

display_question() 함수는 질문을 받아 화면에 출력한 후, 각각의 옵션과 숫자 값을 출력합니다.

 

 get_user_answer() 함수는 사용자의 응답을 수집하여 앞서 설정한 질문에 정의된 정답과 비교합니다.



get_user_answer 함수는 기본적인 오류 검사도 수행합니다. 

사용자가 숫자 이외의 항목을 입력하거나 숫자가 선택의 범위를 벗어나면, 우리는 그들에게 다시 답변을 요청할 것입니다.

 


퀴즈 디자인

이제 질문과 신속한 답변 방법이 생겼으니, 

질문을 무작위로 추출하여 플레이어가 각각 답변할 수 있도록 해야 합니다. 

 

이를 위해 run_quiz()라는 함수를 설계합니다:

 

#Running the Quiz from start to end
def run_quiz():
    score = 0
    total_questions = len(questions)
    
    random.shuffle(questions)
    
    for question in questions:
        display_question(question)
        user_choice = get_user_answer()
        
        if question["options"][user_choice] == question["correct_answer"]:
            print("Correct!")
            score += 1
        else:
            print(f"Sorry, that's incorrect. The correct answer is: {question['correct_answer']}")
        
        print() # Add a blank line for readability
    
    print(f"Quiz complete! You scored {score} out of {total_questions}.")
    percentage = (score / total_questions) * 100
    print(f"Your score: {percentage:.2f}%")

 

이 함수에서는 퀴즈에서 플레이어의 성공 여부를 결정하는 데 사용할 점수 변수를 정의했습니다.

다음으로, 무작위를 보게 될 것입니다.

 

프로그램이 사용자에게 질문하는 순서를 변경하는 셔플(questions) 라인입니다. 

이렇게 다섯 개의 질문만 있으면 겹치는 부분이 많을 것입니다. 

 

그러나 수십 개의 질문을 포함하기 시작하면 질문의 순서를 예측할 수 있는 방법이 없을 가능성이 높습니다.

 

for 루프는 배열의 모든 질문을 통해 질문하고 답을 기다립니다. 

플레이어가 문제를 맞히면 점수가 상승합니다.

 

 그들이 틀리면, 정답을 묻는 메시지가 표시되므로 다음에 배울 것입니다. 

퀴즈를 마치면 프로그램은 사용자가 맞힌 최종 점수를 총 질문 수의 백분율로 출력합니다.

 


게임 루프 구축

모든 게임에는 게임 루프가 필요합니다. 

이 경우, 우리의 주요 게임 루프는 우리의 주요() 함수가 될 것입니다:


#The Main Game Loop
def main():
    while True:
        print("Welcome to the Python Quiz Game!")
        run_quiz()
        
        play_again = input("Would you like to play again? (yes/no): ").lower()
        if play_again != 'yes':
            print("Thanks for playing! Goodbye!")
            break

if __name__ == "__main__":
    main()

 

이 기능은 우리의 전체 퀴즈를 요약하고 플레이어에게 다시 플레이하고 싶은지 물어볼 것입니다. 

 

그렇지 않으면 게임에서 종료됩니다. 

그들이 그렇게 하면, 질문을 재구성하고 다시 물어볼 것입니다.

 

모든 것을 결합하기

모든 코드를 작성하고 저장한 후에는 퀴즈를 실행할 수 있습니다. 

비주얼 스튜디오에는 퀴즈 게임을 시작할 때 사용하는 편리한 "실행" 버튼이 있습니다. 

 

결과는 인상적입니다:

 

 

정답이 틀렸을 경우 수정 사항도 있고 점수에 대한 최종 계산도 있습니다:

 

모든 것이 예상대로 작동하는 것 같아서 수정할 버그가 없습니다. 

파이썬 퀴즈 게임 프로젝트를 완료하신 것을 축하드립니다!

 


업데이트, 개선 사항 및 과제

이것은 간단한 퀴즈 게임입니다.

 다섯 문제는 그다지 흥미롭지 않습니다. 

 

프로젝트를 확장하고 싶으시다면, 플레이어가 더 즐거운 경험을 할 수 있도록 

시도해 볼 수 있는 몇 가지 도전 과제를 소개합니다:


질문 수를 늘립니다: 

질문이 많을수록 플레이어에게는 게임이 더 어려워질 것입니다.


질문의 무작위 부분 집합을 선택합니다: 

모든 질문을 항상 하는 대신, 질문의 하위 집합을 선택하여 물어보세요. 

이것은 플레이어가 다음에 어떤 질문을 받을지 모르기 때문에 더 많은 재생 가능성을 제공합니다.


보다 사용자 친화적인 인터페이스를 디자인하세요: 

이 터미널은 초보자도 파이썬 프로그래밍으로 구현할 수 있지만, 실제 UI를 구성하는 것은 생각보다 훨씬 쉽습니다.

 

 

 

 

2019.08.27-파이썬으로, 네이버 자동로그인 하는 프로그램 짜기

 

파이썬으로, 네이버 자동로그인 하는 프로그램 짜기

파이썬으로, 네이버 자동로그인 하는 프로그램 짜기 2017/04/17 - 파이썬Python을 사용해 보자! 다운로드 및 설치 네이버 자동 로그인 프로그램을 만들어 보았습니다. 오랜만에 파이썬을 건드려보니

kanonxkanon.tistory.com

 

2025.01.04-파이썬을 사용한 초보 코딩: 주사위 굴리기 시뮬레이터 개발

2024.02.22-코딩에 관심 있는 초보자, 프로그래밍 언어를 선택하는 초보자 가이드

2025.01.04-파이썬을 계산기로 사용해야 하는 이유(및 시작하는 방법)

 

-

반응형

댓글