-
[Python] XML 데이터로 주관식 문제 맞추기 게임Coding/Python 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
'Coding > Python' 카테고리의 다른 글
[Python] FutureWarning (0) 2019.09.24 [Python] 여러 개 동시에 입력받기 (0) 2019.09.23 [Python GUI] Tkinter - 2) 윈도우 창 설정/위젯 배치하기 (0) 2019.09.23 [Python GUI] Tkinter - 1) 윈도우 창 생성하기 (0) 2019.09.17 [Python] XML문서 생성하기 (0) 2019.09.10 -