System Specs: Python version = 2.6.1 IDLE Computer = Win-XP, SP2 (current with all windows updates)
---------------------------------------------------------------------------------------- Greetings: I have written code for two things: 1) simulate a coin toss, and 2) assign the toss result to a winner. Code for the simulated coin toss is in a file named "coin_toss.py." Code for the assignment of the toss result is in a file named "toss_winner.py." Each file has one simple function: 1) coin_toss(), and 2) toss_winner(), respectively. (The code for each file is listed below.) Problem: I am getting an error when I run "toss_winner.py." Error Message: Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> toss_winner() File "C:/Python26/toss_winner.py", line 7, in toss_winner coin_toss = coin_toss() UnboundLocalError: local variable 'coin_toss' referenced before assignment Question #1: After reviewing the code below, does anybody know why I am getting this error? Explanation: As I understand, the first statement of the toss_winner() function body -- i.e. "coin_toss = coin_toss()" -- causes four things to happen: 1) the coin_toss() function is called, 2) the coin_toss() function is executed, 3) the coin_toss() function returns the value of its local "coin_toss" variable, and 4) the returned value of the "coin toss" variable that is local to the coin_toss() function is assigned to the "coin toss" variable that is local to the toss_winner() function. Given this understanding, it seems I should NOT be getting a "referenced before assignment" error, involving the "coin_toss" local variable of "toss_winner()." Note: I am new to programming and Python. I'm currently self-studying "Python Programming: An Intro to Computer Science" by Zelle. Thanks! --------------------------------------------------------------- # toss_winner.py from coin_toss import coin_toss def toss_winner(): coin_toss = coin_toss() if coin_toss == "Heads": toss_winner = "Player A" print 'From "toss_winner" function >>', print "Toss Winner = " + str(toss_winner) else: toss_winner = "Player B" print 'From "toss_winner" function >>', print "Toss Winner = " + str(toss_winner) return toss_winner --------------------------------------------------------------- # coin_toss.py from random import random def coin_toss(): random_number = random() if random_number < .5: coin_toss = "Heads" print 'From "coin_toss" function >>', print "Toss result = " + str(coin_toss) else: coin_toss = "Tails" print 'From "coin_toss" function >>', print "Toss result = " + str(coin_toss) return coin_toss -- http://mail.python.org/mailman/listinfo/python-list