
파이썬 미니 퀴즈 게임 만들기 - 기초 문법 총정리 실습
안녕하세요! 파이썬 기초 문법을 차근차근 배워온 여러분, 드디어 배운 내용을 활용하여 나만의 프로그램을 만드는 시간입니다. 이번 강의에서는 여러분이 지금까지 학습한 **입력(Input), 조건문(if/else), 반복문(for/while), 자료구조(리스트, 딕셔너리)** 등의 개념을 총동원하여 간단한 **미니 퀴즈 게임**을 직접 만들어 볼 것입니다.
게임을 만드는 과정은 마치 여러 가지 블록을 조립하여 멋진 집을 짓는 것과 같습니다. 각 문법이 하나의 블록이 되어, 이들을 연결하면 사용자와 상호작용하는 재미있는 프로그램을 만들 수 있습니다. 미니 퀴즈 게임 만들기를 통해 파이썬 문법이 실제 어떻게 사용되는지 체감하고, 코딩 실력을 한 단계 업그레이드하는 경험을 하게 될 것입니다.
미니 퀴즈 게임, 무엇이 필요할까요?
간단한 퀴즈 게임을 만들기 위해서는 몇 가지 기본 기능이 필요합니다.
- 퀴즈 문제와 정답 : 게임에 사용할 질문과 그에 해당하는 답이 있어야겠죠? (자료구조 활용)
- 문제 제시 : 사용자에게 퀴즈 문제를 보여주어야 합니다. (print() 함수 활용)
- 정답 입력 : 사용자가 정답을 입력하게 해야 합니다. (input() 함수 활용)
- 정답 확인 : 사용자가 입력한 답이 맞는지 틀린지 확인해야 합니다. (조건문 if/else 활용)
- 점수 계산 : 맞힌 문제 수를 세어서 점수를 기록해야 합니다. (변수 활용)
- 여러 문제 진행 : 한 문제가 아니라 여러 문제를 순서대로 진행해야 합니다. (반복문 for 또는 while 활용)
- 결과 안내 : 게임이 끝나면 최종 점수를 알려주어야 합니다. (print() 함수 활용)
이 요소들을 하나씩 코드로 만들어가면서 퀴즈 게임을 완성해 보겠습니다.
실습 코드 예시 1: 문제와 정답 준비, 첫 문제 풀기
가장 먼저 퀴즈 문제를 저장하고, 사용자에게 첫 번째 문제를 제시하여 답을 받고 정답인지 확인하는 코드를 작성해 봅시다. 여기서는 문제와 정답을 딕셔너리(dictionary) 형태로 저장하겠습니다. 딕셔너리는 '질문'을 키(key)로, '정답'을 값(value)으로 연결하여 저장하기 편리합니다.
위 코드를 실행하고 정답을 입력하면 다음과 같은 결과가 나타납니다.
정답을 입력하세요: 서울
--------------------
정답입니다!
(또는 오답일 경우)
대한민국의 수도는 어디인가요?
정답을 입력하세요: 부산
--------------------
오답입니다. 정답은 서울 입니다.
실습 코드 예시 2: 반복문과 점수 계산 추가
이제 모든 문제를 자동으로 풀고, 맞힌 문제 수를 세어서 최종 점수를 계산하도록 코드를 개선해 봅시다. 딕셔너리에 저장된 모든 문제와 정답을 순서대로 처리하기 위해 for 반복문을 사용할 것입니다. 그리고 점수를 저장할 변수도 하나 만들겠습니다.
위 코드를 실행하면 모든 문제가 순서대로 출제되고, 각 문제에 답할 때마다 정답 여부와 현재 점수가 (내부적으로) 업데이트됩니다. 마지막 문제까지 풀면 최종 점수가 화면에 나타납니다.
정답을 입력하세요: 서울
정답입니다!
--------------------
태양계 행성은 모두 몇 개인가요?
정답을 입력하세요: 9
오답입니다. 정답은 8 입니다.
--------------------
파이썬에서 화면에 글자를 출력하는 함수는 무엇인가요?
정답을 입력하세요: print
정답입니다!
--------------------
모든 문제를 풀었습니다! 당신의 점수는 2 점 입니다.
실습 코드 예시 3: 정답 입력 형태 유연하게 처리하기 (심화)
예시 2의 코드에서는 사용자가 입력한 정답과 저장된 정답이 **완전히 똑같아야만** 정답으로 인정됩니다. 만약 저장된 정답이 "서울"인데 사용자가 "seoul"이라고 입력하거나, "8"인데 "여덟"이라고 입력하면 오답 처리가 됩니다. 좀 더 유연한 게임을 만들기 위해 사용자의 입력을 특정 형태로 통일시키는 방법을 사용해 볼 수 있습니다. 가장 쉬운 방법은 대소문자 구분 없이 비교하기 위해 입력받은 문자열을 모두 소문자로 바꾸는 것입니다.
이 코드에서는 사용자의 입력값과 저장된 정답을 모두 .lower() 함수를 사용하여 소문자로 변환한 후 비교합니다. 이렇게 하면 사용자가 "Print"나 "PRINT"라고 입력해도 "print"와 같은 정답으로 처리할 수 있습니다. 한글이나 숫자가 포함된 정답에는 큰 영향이 없지만, 영문 정답의 경우 유용하게 사용할 수 있는 기법입니다.
주의:
사용자의 입력 형식을 완전히 자유롭게 하려면 더 복잡한 처리가 필요합니다. 예를 들어, 숫자 정답에 대해 "8"과 "여덟"을 모두 정답으로 인정하려면 별도의 변환 로직이나 정답 목록을 추가해야 합니다. 이 강의에서는 간단한 소문자 변환만 다룹니다.
핵심 : 미니 퀴즈 게임은 **자료구조(딕셔너리)로 문제-정답 저장**, **반복문(for)으로 문제 순회**, **입력(input)으로 답 받기**, **조건문(if/else)으로 정답 확인**, **변수로 점수 계산**, **출력(print)으로 결과 표시** 등 지금까지 배운 핵심 기초 문법을 조합하여 만듭니다.
마무리 요약
이번 강의에서는 파이썬의 여러 기초 문법을 활용하여 나만의 미니 퀴즈 게임을 성공적으로 만들어 보았습니다. 문제를 저장하고(딕셔너리), 문제를 출제하며(반복문), 답을 받고(input), 정답을 확인하고(조건문), 점수를 계산하고(변수), 결과를 보여주는(print) 일련의 과정 속에 지금까지 배운 핵심 개념들이 모두 녹아있었습니다. 작은 프로젝트를 통해 배운 지식을 실제로 적용해보는 경험은 앞으로 여러분이 더 복잡한 프로그램을 만드는데 큰 도움이 될 것입니다.
코드 실행 중에 궁금한 점이 있거나 더 개선하고 싶은 아이디어가 있다면 댓글에 남겨주세요.
다음 강의에서는 또 다른 흥미로운 주제로 파이썬 학습을 이어가겠습니다.