Le Wed, 22 Apr 2009 11:57:13 -0700, "WM." <wfergus...@socal.rr.com> s'exprima ainsi:
[...] > def DisplayBoard(HANGMAPIX, MissedLetters, CorrectLetters, SecretWord): > print HANGMANPIX[len(MissedLetters)] > print > > print 'MissedLetters:', > for Letter in MissedLetters: > print Letter, > print > > Blanks = '_' * len(SecretWord) > > for i in range(len(SecretWord)): > # 116 Replace Blanks with correctly guessed letters. > if SecrettWord[i] in CorrectLetters: > Blanks = Blanks[:i] + SecretWord[i] + Blanks[i+1:] > > for Letters in Blanks:#Show SecretWord w 1 space between letters. > print Letter, > print [...] > End of program, below is the error message: > > Traceback (most recent call last): > File "C:\Python26\SweigartHangMan.py", line 212, in <module> > DisplayBoard(HANGMANPIX, MissedLetters, CorrectLetters, SecretWord) > File "C:\Python26\SweigartHangMan.py", line 183, in DisplayBoard > for Letters in Blanks:#Show SecretWord w 1 space between letters. > UnboundLocalError: local variable 'Blanks' referenced before assignment Python's right ;-) You may use the word 'Blanks' without defining it. The reason is you definie Blanks inside a "for Letter in MissedLetters" loop. If ever MissedLetters happens to be empty, the loop will never be entered and Blanks remains unknown. Happy you! This in fact reveals a conceptual error in your program's design (BLanks should be first defined outside the loop)... that may have caused damage in a real-world case if ever not detected early enough. Denis ------ la vita e estrany _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor