92 lines
No EOL
2.8 KiB
Python
92 lines
No EOL
2.8 KiB
Python
def Letter2Number(letter):
|
|
if("A" in letter):
|
|
return 0
|
|
if("B" in letter):
|
|
return 1
|
|
if("C" in letter):
|
|
return 2
|
|
if("D" in letter):
|
|
return 3
|
|
if("E" in letter):
|
|
return 4
|
|
if("F" in letter):
|
|
return 5
|
|
if("G" in letter):
|
|
return 6
|
|
if("H" in letter):
|
|
return 7
|
|
if("I" in letter):
|
|
return 8
|
|
if("J" in letter):
|
|
return 9
|
|
if("K" in letter):
|
|
return 10
|
|
|
|
def ParseMesser(lines):
|
|
result = []
|
|
|
|
# Pre-Stuff
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 0
|
|
|
|
# Going through lines
|
|
for line in lines:
|
|
match(state):
|
|
case 0: # Awaiting question
|
|
if("Practice Exam A - Answers" in line
|
|
or "Practice Exam B - Answers" in line
|
|
or "Practice Exam C - Answers" in line):
|
|
state = 1
|
|
case 1: # Writing into prompt
|
|
if("*" in line):
|
|
if("PICK TWO" in line):
|
|
state = 0
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 2
|
|
else:
|
|
for l in line:
|
|
if(l == '\n'):
|
|
tempQuestion["prompt"] += " "
|
|
else:
|
|
tempQuestion["prompt"] += l
|
|
case 2: # Awaiting for answers
|
|
if(line == "" or line == " " or line == "\n" or line == None):
|
|
state = 3
|
|
case 3: # Adding responses
|
|
if(line == "" or line == " " or line == "\n" or line == None):
|
|
state = 4
|
|
else:
|
|
if(len(line.split(".")) <= 1):
|
|
print("SKIPED QUESTION: " + tempQuestion["prompt"])
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 0
|
|
else:
|
|
tempQuestion["responses"].append(line.split(".")[1])
|
|
case 4: # Awaiting for Correct Answer
|
|
if("The Answer" in line):
|
|
tempQuestion["correct"] = Letter2Number(line.split(":")[1].split(".")[0])
|
|
result.append(tempQuestion)
|
|
tempQuestion = {
|
|
"type": 0,
|
|
"prompt": "",
|
|
"responses": [],
|
|
"correct": 0
|
|
}
|
|
state = 0
|
|
|
|
return result |