You haven't recieved many answers, and probably won't because your examples are incomplete. You are obviously doing something in the code that is not posted that alters the result. Take a look at the following code that is a complete program that can be run. It shows that your contention does not hold up, at least as far as I can tell from what has been posted. You may be re-defining variables or it may be a scope problem, but there is no way to tell from the snippets that were posted. Also, this bit of code
result = checkAnswer("C", userAnswer)
if(result):
#if answer is incorrect, display message as such
wrongAnswer()
will not even run because of improper indents.
def change_bool(bool_arg):
bool_arg = not bool_arg
print "in first function", bool_arg ## prints 'False'
def change_2():
test_1 = False
print "in 2nd function", test_1 ## prints 'False'
test_1 = True
change_bool(test_1)
print "first", test_1 ##(prints 'True')
change_2()
print "second", test_1 ##(prints 'True')