On Sun, Nov 23, 2014 at 3:15 PM, Seymore4Head <Seymore4Head@hotmail.invalid> wrote: > Traceback (most recent call last): > File "C:\Documents and Settings\Administrator\Desktop\rps.py", line > 7, in <module> > a=RPS() > File "C:\Documents and Settings\Administrator\Desktop\rps.py", line > 6, in __init__ > self.key=key[self.throw] > NameError: name 'key' is not defined
This information is far more helpful than "it is broke". Note how it says that the name 'key' is not defined? You're expecting that it would be defined, because you defined it a few lines earlier. So here's a more useful way to ask the question: -- cut -- I'm trying to use a dictionary to translate throw numbers into descriptions, but even though the dictionary has been defined, Python is telling me it hasn't. import random class RPS: key={0:"rock", 1:"paper",2:"scissors"}; def __init__(self): self.throw=random.randrange(3) self.key=key[self.throw] a=RPS() Traceback (most recent call last): File "C:\Documents and Settings\Administrator\Desktop\rps.py", line 7, in <module> a=RPS() File "C:\Documents and Settings\Administrator\Desktop\rps.py", line 6, in __init__ self.key=key[self.throw] NameError: name 'key' is not defined It seems to me that 'key' is defined on line 3. Can anyone explain what's happening here? Thanks! -- cut -- Note that I've posted the *entire* code of your script (it's a reconstruction, but I suspect it's fairly close; there might be more code after that, but it's not affecting anything), and included the traceback in the first message, rather than waiting for someone to ask for it. Armed with this information, someone can tell you: 1) Python's namespacing rules mean that 'key' is a part of the RPS class, and can be referred to as 'self.key' or as 'RPS.key' 2) Use of 'self.key' for the textual form of the throw is shadowing the first of those reference names (but it's a poor name anyway) 3) A list would work just as well as a dictionary here, since your indices are sequential and start from zero 4) There's another function in the random module which can do both of your steps at once. Thank you for helping us help you help us all! ChrisA -- https://mail.python.org/mailman/listinfo/python-list