# Trang (Katherine) Ngo and Nhi Ngo
# Programming Project #1
# Question list
quest1 = '1. Lack of recall of an emotionally painful memory.'
quest2 = '2. Forceful refusal to acknowledge an emotionally painful memory.'
quest3 = "3. Explaining and intellectually justifying one's impulsive behavior."
quest4 = "4. Atrributing one's own unacceptable thoughts or feelings to another person."
quest5 = "5. Reverting to an earlier, less sophisticated behavior."
quest6 = "6. Expressing the opposite of what one really feels, when it would feel too dangerous to express the real feeling."
quest_list = (quest1, quest2, quest3, quest4, quest5, quest6)
#Matching choices
choice1 = ["A. Denial",
"B. Repression",
"C. Reaction Formation",
"D. Projection"]
choice2 = ["A. Denial",
"B. Projection",
"C. Rationalization",
"D. Sublimation"]
choice3 = ["A. Repression",
"B. Regression",
"C. Rationalization",
"D. Displacement"]
choice4 = ["A. Reaction Formation",
"B. Projection",
"C. Sublimation",
"D. Regression"]
choice5 = ["A. Displacement",
"B. Rationalization",
"C. Denial",
"D. Regression"]
choice6 = ["A. Regression",
"B. Reaction Formation",
"C. Repression",
"D. Projection"]
choices = [choice1, choice2, choice3, choice4, choice5, choice6]
#Matching correct answers
C_ans = ("B", "A", "C", "B", "D", "B")
#Getting answers from user
print("Choose the correct defense mechanism to each corresponding description of action:")
list_ans = []
for questNum in range(len(quest_list)):
print (quest_list[questNum])
print ('\n'.join(choices[questNum]))
answer = input("Type your answer in capitalized letters: ")
while answer not in ["A", "B", "C", "D"]:
print("Invalid answer.")
answer = input("Type your answer in capitalized letters: ")
list_ans.append(answer)
#Grade answers
num_correct = 0
for questNum in range(len(quest_list)):
if list_ans[questNum] == C_ans[questNum]:
print("\nYour answer for question %d is correct." %(questNum + 1))
num_correct += 1
else:
print("\nYour answer for question %d is wrong." %(questNum + 1))
print(quest_list[questNum])
print('\n'.join(choices[questNum]))
print ("The correct answer is %s." %C_ans[questNum])
print (choices[questNum][ord(C_ans[questNum])-65])
#Give percentage grade
percent_grade = num_correct/6 *100
print("\nYour final grade is %.2f%%." %percent_grade)