What does THIS mean?
UnboundLocalError: local variable 'taxrate' referenced before assignment
It means that you have tried to modify the value of a variable - perhaps in a function - before you have given it an initial value:
taxrate = 15
def getnet(gross):
taxrate /= 100.
net = gross - gross / (1.0 + taxrate)
return net
amount = getnet (230)
print amount
The variable
taxrate is local to the getnet function ... the way the code is written, there is a DIFFERENT
taxrate variable in the calling code.
You
could share the variable by declaring it
global in the function or -
much better - you could use it
read only in the function, in which case Python will see it from the outer scope.
So this will work:
taxrate = 15
def getnet(gross):
net = gross - gross / (1.0 + taxrate/100.0)
return net
amount = getnet (230)
print amount
And that's also far better because it doesn't alter the variable that contains the tax rate - rather it leaves it available for later use.
(written 2009-01-31)
Associated topics are indexed under
Y109 - Python - Exceptions [4029] Exception, Lambda, Generator, Slice, Dict - examples in one Python program - (2013-03-04)
[3930] Reporting the full stack trace when you catch a Python exception - (2012-11-22)
[3913] How many times ... has this loco headed west through Tenby? - Python exceptions - (2012-11-05)
[3664] Error checking in a Python program - making your program robust via exceptions - (2012-03-22)
[3441] Pressing ^C in a Python program. Also Progress Bar. - (2011-09-15)
[3433] Exceptions - a fail-safe way of trapping things that may go wrong - (2011-09-11)
[3177] Insurance against any errors - Volcanoes and Python - (2011-02-19)
[2998] Using an exception to initialise a static variable in a Python function / method - (2010-10-13)
[2994] Python - some common questions answered in code examples - (2010-10-10)
[2622] Handling unusual and error conditions - exceptions - (2010-02-03)
[2408] Robust user input (exception handling) example in Python - (2009-09-17)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2281] Python - using exceptions to set a fallback - (2009-07-12)
[1236] Trying things in Python - (2007-06-18)
[1042] Nested exceptions in Python - (2007-01-18)
[381] Exceptions in Python - (2005-07-17)
561a
Some other Articles
Pre and post increment - the ++ operatorShort health and safety courseLearning Python - many new example programsBaby Caleb and Fortune City in your web logs?UnboundLocalError - Python MessagePython - a truly dynamic languageApache httpd and Apache Tomcat miscellanyService Excellence AwardsFirst ClasswxPython - Introduction and sample