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.xml1.5 kB