Coding/Python

[Python] XML 데이터로 주관식 문제 맞추기 게임

junedev 2019. 9. 10. 15:33

해당 코드는 현재 진행중인 memer 프로젝트에서 가져온 것입니다.

XML 데이터 파싱을 공부하던 중 연습삼아 만들어 본 예제입니다.

XML파일을 파싱하여 나온 데이터에서 랜덤으로 문제를 출력하여, Meme의 설명을 보고 무슨 말인지 맞추는 게임입니다.

주관식 5문제로 진행되며 random 모듈의 sample 메소드를 이용하여 중복된 문제 출제를 차단한 코드입니다.



코드

#-*- coding:utf-8 -*-
import random
import xml.etree.ElementTree as ET

index = 0
score = 0
nameList = {}
expList = {}
ranQuiz = {}
memer = ET.parse('memer.xml').getroot()
for meme in memer.iter("meme"):  # XML 파싱하여 리스트로 쌓기
    nameList[index] = meme.get("name")  # name attribute만 따로 저장
    expList[index] = meme.findtext("exp") # exp 태그의 text만 따로 저장
    index += 1

print('인싸테스트\n1.게임 시작\n2.문제 리스트 보기\n')
num = int(input("=>"))
if num == 1:
    ranQuiz = random.sample(range(len(nameList)), 5)
    for i in range(5): # 문제는 총 5문제
        print('Q: ' + expList[ranQuiz[i]]) # 문제 출제
        answer = input()
        if(answer == nameList[ranQuiz[i]]): # 입력 값과 랜덤으로 출력된 문제의 답이 일치한다면
            score += 1
            print('정답')
        else:
            print('오답')
    print(score) # 게임이 끝나면 스코어를 보여준다.
elif num == 2:
    print("<문제 리스트>")
    for i in range(len(nameList)):
        print((i+1) , nameList[i] + " : " + expList[i])



  • 간단한 주관식 문제로 사소한 오타, 띄어쓰기를 잡아내진 못합니다.

  • 데이터 샘플 ↓

    memer.xml
    1.5 kB