Skip to content

Instantly share code, notes, and snippets.

@s2t2
Last active October 23, 2016 21:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s2t2/970e0eadad01d6307f6a2fbf55aab1ec to your computer and use it in GitHub Desktop.
Save s2t2/970e0eadad01d6307f6a2fbf55aab1ec to your computer and use it in GitHub Desktop.
import os
#
# PARSE STUDENT ANSWERS FROM FILE
#
# choose the right file (must be in the same directory as this script!)
filename = os.path.join(os.path.dirname(__file__), 'student_answers.csv')
print(filename)
# read the file contents into memory
infile = open(filename, 'r')
student_answers = infile.readlines()
infile.close()
# clean the list by stripping line-breaks
index = 0
while index < len(student_answers):
student_answers[index] = student_answers[index].rstrip('\n')
index += 1
print(student_answers)
#
# COMPARE STUDENT ANSWERS WITH CORRECT ANSWERS
#
answer_key = [
"A","C","A","A","D",
"B","C","A","C","B",
"A","C","D","A","D",
"C","B","B","D","A"
]
correct_answers = []
incorrect_answers = []
for index, student_answer in enumerate(student_answers):
correct_answer = answer_key[index] # we assume the student answer file is in the same order as the answer key
student_answer_is_correct = (student_answer == correct_answer)
question_number = index + 1
if (student_answer_is_correct):
correct_answers.append(question_number)
else:
incorrect_answers.append(question_number)
print("ON QUESTION NUMBER " + str(question_number) + ", STUDENT CHOSE: " + student_answer + " AND CORRECT ANSWER IS: " + correct_answer + ". STUDENT IS CORRECT?: " + str(student_answer_is_correct))
#
# DISPLAY RESULTS
#
print("STUDENT CHOSE " + str( len(correct_answers) ) + " CORRECT ANSWERS: " + str(correct_answers))
print("STUDENT CHOSE " + str( len(incorrect_answers) ) + " INCORRECT ANSWERS: " + str(incorrect_answers))
student_passed = (len(correct_answers) >= 15)
print("STUDENT PASSED?: " + str(student_passed))
We can make this file beautiful and searchable if this error is corrected: No commas found in this CSV file in line 0.
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
@s2t2
Copy link
Author

s2t2 commented Oct 23, 2016

--->> python scantron.py 
student_answers.csv
['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']
ON QUESTION NUMBER 1, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 2, STUDENT CHOSE: A AND CORRECT ANSWER IS: C. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 3, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 4, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 5, STUDENT CHOSE: A AND CORRECT ANSWER IS: D. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 6, STUDENT CHOSE: A AND CORRECT ANSWER IS: B. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 7, STUDENT CHOSE: A AND CORRECT ANSWER IS: C. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 8, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 9, STUDENT CHOSE: A AND CORRECT ANSWER IS: C. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 10, STUDENT CHOSE: A AND CORRECT ANSWER IS: B. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 11, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 12, STUDENT CHOSE: A AND CORRECT ANSWER IS: C. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 13, STUDENT CHOSE: A AND CORRECT ANSWER IS: D. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 14, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
ON QUESTION NUMBER 15, STUDENT CHOSE: A AND CORRECT ANSWER IS: D. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 16, STUDENT CHOSE: A AND CORRECT ANSWER IS: C. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 17, STUDENT CHOSE: A AND CORRECT ANSWER IS: B. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 18, STUDENT CHOSE: A AND CORRECT ANSWER IS: B. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 19, STUDENT CHOSE: A AND CORRECT ANSWER IS: D. STUDENT IS CORRECT?: False
ON QUESTION NUMBER 20, STUDENT CHOSE: A AND CORRECT ANSWER IS: A. STUDENT IS CORRECT?: True
STUDENT CHOSE 7 CORRECT ANSWERS: [1, 3, 4, 8, 11, 14, 20]
STUDENT CHOSE 13 INCORRECT ANSWERS: [2, 5, 6, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19]
STUDENT PASSED?: False

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment