On Sun, Dec 25, 2011 at 5:18 AM, daedae11 <[email protected]> wrote:
> The following program has an error :
> new += lists[int(j)]+"-";
> UnboundLocalError: local variable 'new' referenced before assignment
>
> But when I put the sentence " new = '' " in the main() function, the
> program run normally.
>
> Please tell me why? Isn't variable new in the following program is a global
> variable?
>
> the program is:
> lists = ['zero','one','two','three','four','five','six','seven','eight','nine'];
> new = "";
This new is global to your file. Within your main() function you can
read the value of new.
But inside main() you are creating another variable also called new
when you do this:
new += .....
Your code is trying to add something to a variable that doesn't yet
have a value. 'new' is
a name that is not bound to any value.
You can either move the stuff at the top of your program into main, or
you could pass the outer new
into main as a parameter: main(new):
>
>
> def main():
>
> while True:
> try:
> iput = int(raw_input('Please input a int(0~1000): '))
> if not 0<=iput<=1000:
> continue
> except:
> continue
> break
>
> iput = str(iput)
> for j in iput:
> new += lists[int(j)]+"-";
> print new[0:-1];
>
> if __name__ == "__main__":
> main();
>
> ________________________________
> daedae11
>
> _______________________________________________
> Tutor maillist - [email protected]
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
--
Joel Goldstick
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor