You are looking for information, articles, knowledge about the topic nail salons open on sunday near me unboundlocalerror local variable referenced before assignment on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: unboundlocalerror local variable referenced before assignment UnboundLocalError, Referenced before assignment, Local variable referenced before assignment, UnboundLocalError: local variable type referenced before assignment, UnboundLocalError: local variable b referenced before assignment, Global variable Python, UnboundLocalError: local variable username referenced before assignment, UnboundLocalError: local variable str referenced before assignment
How do you fix UnboundLocalError local variable referenced before assignment?
The Python “UnboundLocalError: Local variable referenced before assignment” occurs when we reference a local variable before assigning a value to it in a function. To solve the error, mark the variable as global in the function definition, e.g. global my_var .
What is local variable referenced before assignment?
The local variable referenced before assignment occurs when some variable is referenced before assignment within a function’s body. The error usually occurs when the code is trying to access the global variable.
How do you avoid local variables before assignment?
The UnboundLocalError: local variable referenced before assignment error is raised when you try to assign a value to a local variable before it has been declared. You can solve this error by ensuring that a local variable is declared before you assign it a value.
How do you fix UnboundLocalError?
UnboundLocalError can be solved by changing the scope of the variable which is complaining. You need to explicitly declare the variable global. Variable x’s scope in function printx is global. You can verify the same by printing the value of x in terminal and it will be 6.
How do I change a local variable to global in Python?
Normally, when you create a variable inside a function, that variable is local, and can only be used inside that function. To create a global variable inside a function, you can use the global keyword.
How do you initialize a variable in Python?
…
Thus, declaring a variable in Python is very simple.
- Just name the variable.
- Assign the required value to it.
- The data type of the variable will be automatically determined from the value assigned, we need not define it explicitly.
How are local variables referenced?
A local variable reference in the function or block in which it is declared overrides the same variable name in the larger scope. In programming languages with only two levels of visibility, local variables are contrasted with global variables.
How do you declare variables?
To declare (create) a variable, you will specify the type, leave at least one space, then the name for the variable and end the line with a semicolon ( ; ). Java uses the keyword int for integer, double for a floating point number (a double precision number), and boolean for a Boolean value (true or false).
How do you declare a local variable in Python?
In Python or any other programming languages, the definition of local variables remains the same, which is “A variable declared inside the function is called local function”. We can access a local variable inside but not outside the function.
How do you avoid global variables?
The simplest way to avoid globals all together is to simply pass your variables using function arguments. As you can see, the $productData array from the controller (via HTTP request) goes through different layer: The controller receives the HTTP request. The parameters are passed to the model.
How do you use globals in Python?
- When we create a variable inside a function, it is local by default.
- When we define a variable outside of a function, it is global by default. …
- We use global keyword to read and write a global variable inside a function.
What happens if a local variable exists with the same name as the global variable you want to access?
What happens if a local variable exists with the same name as the global variable you want to access? Explanation: If a local variable exists with the same name as the local variable that you want to access, then the global variable is shadowed. That is, preference is given to the local variable. 6.
What is local variable in Python?
A variable declared inside the function’s body or in the local scope is known as a local variable.
How do you change a global variable in a function Python?
If you want to simply access a global variable you just use its name. However to change its value you need to use the global keyword. E.g. This would change the value of the global variable to 55.
What do you mean by global variable?
In computer programming, a global variable is a variable with global scope, meaning that it is visible (hence accessible) throughout the program, unless shadowed. The set of all global variables is known as the global environment or global state.
How do you declare a local variable in Python?
In Python or any other programming languages, the definition of local variables remains the same, which is “A variable declared inside the function is called local function”. We can access a local variable inside but not outside the function.
How do you use globals in Python?
- When we create a variable inside a function, it is local by default.
- When we define a variable outside of a function, it is global by default. …
- We use global keyword to read and write a global variable inside a function.
What is non local variable in Python?
The nonlocal keyword is used to work with variables inside nested functions, where the variable should not belong to the inner function. Use the keyword nonlocal to declare that the variable is not local.
How do you use a global variable inside a function in Python?
Rules of global keyword:
If a variable is assigned a value anywhere within the function’s body, it’s assumed to be a local unless explicitly declared as global. Variables that are only referenced inside a function are implicitly global. We Use a global keyword to use a global variable inside a function.
Python 3: UnboundLocalError: local variable referenced before assignment – Stack Overflow
- Article author: stackoverflow.com
- Reviews from users: 16281 Ratings
- Top rated: 3.6
- Lowest rated: 1
- Summary of article content: Articles about Python 3: UnboundLocalError: local variable referenced before assignment – Stack Overflow Closed 6 years ago. The following code gives the error UnboundLocalError: local variable ‘Var1’ referenced before assignment : Var1 = 1 … …
- Most searched keywords: Whether you are looking for Python 3: UnboundLocalError: local variable referenced before assignment – Stack Overflow Closed 6 years ago. The following code gives the error UnboundLocalError: local variable ‘Var1’ referenced before assignment : Var1 = 1 …
- Table of Contents:
5 Answers
5
Not the answer you’re looking for Browse other questions tagged python python-3x scope or ask your own question
Python local variable referenced before assignment Solution | CK
- Article author: careerkarma.com
- Reviews from users: 16275 Ratings
- Top rated: 3.9
- Lowest rated: 1
- Summary of article content: Articles about Python local variable referenced before assignment Solution | CK The UnboundLocalError: local variable referenced before assignment error is raised when you try to assign a value to a local variable before it … …
- Most searched keywords: Whether you are looking for Python local variable referenced before assignment Solution | CK The UnboundLocalError: local variable referenced before assignment error is raised when you try to assign a value to a local variable before it … On Career Karma, learn about the Python local variable referenced before assignment error, how the error works, and how to solve the error.
- Table of Contents:
What is UnboundLocalError local variable referenced before assignment
An Example Scenario
The Solution
Conclusion
[SOLVED] Local Variable Referenced Before Assignment – Python Pool
- Article author: www.pythonpool.com
- Reviews from users: 23707 Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about [SOLVED] Local Variable Referenced Before Assignment – Python Pool Unboundlocalerror: local variable referenced before assignment occurs when a variable is … …
- Most searched keywords: Whether you are looking for [SOLVED] Local Variable Referenced Before Assignment – Python Pool Unboundlocalerror: local variable referenced before assignment occurs when a variable is … Unboundlocalerror: local variable referenced before assignment is thrown if a variable is assigned before it’s bound.
- Table of Contents:
Why Does This Error Occur
Local Variable Declarations vs Global Variable Declarations
Local Variable Referenced Before Assignment Error with Explanation
Solutions
UnboundLocalError local variable ‘DISTRO_NAME’
DJANGO – Local Variable Referenced Before Assignment [Form]
FAQs on Local Variable Referenced Before Assignment
Conclusion
Trending Python Articles
About us
Quick Links
Pages
Fix – Local variable referenced before assignment in Python | bobbyhadz
- Article author: bobbyhadz.com
- Reviews from users: 29530 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about Fix – Local variable referenced before assignment in Python | bobbyhadz Updating …
- Most searched keywords: Whether you are looking for Fix – Local variable referenced before assignment in Python | bobbyhadz Updating The Python UnboundLocalError: Local variable referenced before assignment occurs when we reference a local variable before assigning a value to it in a function. To solve the error, mark the variable as global in the function definition, e.g. `global my_var`.
- Table of Contents:
Local Variable Referenced Before Assignment in Python | Delft Stack
- Article author: www.delftstack.com
- Reviews from users: 22249 Ratings
- Top rated: 4.9
- Lowest rated: 1
- Summary of article content: Articles about Local Variable Referenced Before Assignment in Python | Delft Stack Updating …
- Most searched keywords: Whether you are looking for Local Variable Referenced Before Assignment in Python | Delft Stack Updating This tutorial explains the reason and solution of the python error local variable referenced before assignmentpython local variable referenced before assignment
- Table of Contents:
Python local variable referenced before assignment Solution | CK
- Article author: careerkarma.com
- Reviews from users: 28695 Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about Python local variable referenced before assignment Solution | CK Updating …
- Most searched keywords: Whether you are looking for Python local variable referenced before assignment Solution | CK Updating On Career Karma, learn about the Python local variable referenced before assignment error, how the error works, and how to solve the error.
- Table of Contents:
What is UnboundLocalError local variable referenced before assignment
An Example Scenario
The Solution
Conclusion
Solving Python Error – UnboundLocalError: local variable ‘x’ referenced before assignment – https://pythoncircle.com
- Article author: pythoncircle.com
- Reviews from users: 8769 Ratings
- Top rated: 3.7
- Lowest rated: 1
- Summary of article content: Articles about
Solving Python Error – UnboundLocalError: local variable ‘x’ referenced before assignment – https://pythoncircle.com
Updating …
- Most searched keywords: Whether you are looking for
Solving Python Error – UnboundLocalError: local variable ‘x’ referenced before assignment – https://pythoncircle.com
Updating UnboundLocalError: local variable ‘x’ referenced before assignment, solved UnboundLocalError in python, reason for UnboundLocalError in python, global vs nonlocal keyword in python, How to solve Python Error – UnboundLocalError: local variable ‘x’ referenced before assignment, nested scope in python, nonlocal vs global scope in pythonUnboundLocalError: local variable ‘x’ referenced before assignment, solved UnboundLocalError in python, reason for UnboundLocalError in python, global vs nonlocal keyword in python, How to solve Python Error – UnboundLocalError: local variable ‘x’ referenced before assignment, nested scope in python, nonlocal vs global scope in python
- Table of Contents:
Local Variable Referenced Before Assignment in Python | Delft Stack
- Article author: www.delftstack.com
- Reviews from users: 45511 Ratings
- Top rated: 4.9
- Lowest rated: 1
- Summary of article content: Articles about Local Variable Referenced Before Assignment in Python | Delft Stack The local variable referenced before assignment occurs when some variable is referenced before assignment within a function’s body. The error … …
- Most searched keywords: Whether you are looking for Local Variable Referenced Before Assignment in Python | Delft Stack The local variable referenced before assignment occurs when some variable is referenced before assignment within a function’s body. The error … This tutorial explains the reason and solution of the python error local variable referenced before assignmentpython local variable referenced before assignment
- Table of Contents:
Fix – Local variable referenced before assignment in Python | bobbyhadz
- Article author: bobbyhadz.com
- Reviews from users: 45138 Ratings
- Top rated: 3.3
- Lowest rated: 1
- Summary of article content: Articles about Fix – Local variable referenced before assignment in Python | bobbyhadz The Python “UnboundLocalError: Local variable referenced before assignment” occurs when we reference a local variable before assigning a … …
- Most searched keywords: Whether you are looking for Fix – Local variable referenced before assignment in Python | bobbyhadz The Python “UnboundLocalError: Local variable referenced before assignment” occurs when we reference a local variable before assigning a … The Python UnboundLocalError: Local variable referenced before assignment occurs when we reference a local variable before assigning a value to it in a function. To solve the error, mark the variable as global in the function definition, e.g. `global my_var`.
- Table of Contents:
UnboundLocalError: local variable ‘filepart’ referenced before assignment odoo12 | Odoo
- Article author: www.odoo.com
- Reviews from users: 46465 Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about UnboundLocalError: local variable ‘filepart’ referenced before assignment odoo12 | Odoo The Unboundlocalerror: local variable referenced before assignment is raised when you try to use a variable before it has been assigned in the local context … …
- Most searched keywords: Whether you are looking for UnboundLocalError: local variable ‘filepart’ referenced before assignment odoo12 | Odoo The Unboundlocalerror: local variable referenced before assignment is raised when you try to use a variable before it has been assigned in the local context … Hi,
I have customize the sale and purchase report but while printing the report I am getting error “UnboundLocalError: local variable ‘filepart’ referenced before assignment”. and I have installed “prt_report_attachment_preview” OCA module.
I am not getting why I am getting this error. Could anyone help me to resolve this error.
Thanks in advance! - Table of Contents:
Python UnboundLocalError: local variable referenced before assignment – The Research Scientist Pod
- Article author: researchdatapod.com
- Reviews from users: 19109 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about Python UnboundLocalError: local variable referenced before assignment – The Research Scientist Pod This error occurs because when we make an assignment to a variable in a scope, that … …
- Most searched keywords: Whether you are looking for Python UnboundLocalError: local variable referenced before assignment – The Research Scientist Pod This error occurs because when we make an assignment to a variable in a scope, that … This error occurs when you try to reference a local variable before assigning a value to it. Solve this error with this tutorial!
- Table of Contents:
Table of contents
What is Scope in Python
UnboundLocalError local variable referenced before assignment
Example #1 Accessing a Local Variable
Example #2 Function with if-elif statements
Summary
UnboundLocalError: Local Variable Referenced Before Assignment
- Article author: www.stechies.com
- Reviews from users: 7499 Ratings
- Top rated: 3.2
- Lowest rated: 1
- Summary of article content: Articles about UnboundLocalError: Local Variable Referenced Before Assignment Getting an error UnboundLocalError: local variable referenced before assignment, this error occurs when you give reference of local variable without … …
- Most searched keywords: Whether you are looking for UnboundLocalError: Local Variable Referenced Before Assignment Getting an error UnboundLocalError: local variable referenced before assignment, this error occurs when you give reference of local variable without … Getting an error UnboundLocalError: local variable referenced before assignment, this error occurs when you give reference of local variable without assigning any value. to solve this declare GLOBAL variable OR pass function with variable.Python, Tutorial UnboundLocalError: Local Variable Referenced Before Assignment UnboundLocalError: Local Variable Referenced Before Assignment
- Table of Contents:
UnboundLocalError: Local Variable Referenced Before Assignment
- Article author: vbsreddy1.medium.com
- Reviews from users: 4526 Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about UnboundLocalError: Local Variable Referenced Before Assignment In Python, variables that are only referenced inse a function are implicitly global. If a variable is assigned a value anywhere within the … …
- Most searched keywords: Whether you are looking for UnboundLocalError: Local Variable Referenced Before Assignment In Python, variables that are only referenced inse a function are implicitly global. If a variable is assigned a value anywhere within the … Getting an error UnboundLocalError: local variable referenced before assignment, this error occurs when you give reference of local variable without assigning any value. to solve this declare GLOBAL variable OR pass function with variable.Python, Tutorial UnboundLocalError: Local Variable Referenced Before Assignment UnboundLocalError: Local Variable Referenced Before Assignment
- Table of Contents:
See more articles in the same category here: Chewathai27.com/to/blog.
Python 3: UnboundLocalError: local variable referenced before assignment
This is because, even though Var1 exists, you’re also using an assignment statement on the name Var1 inside of the function ( Var1 -= 1 at the bottom line). Naturally, this creates a variable inside the function’s scope called Var1 (truthfully, a -= or += will only update (reassign) an existing variable, but for reasons unknown (likely consistency in this context), Python treats it as an assignment). The Python interpreter sees this at module load time and decides (correctly so) that the global scope’s Var1 should not be used inside the local scope, which leads to a problem when you try to reference the variable before it is locally assigned.
Using global variables, outside of necessity, is usually frowned upon by Python developers, because it leads to confusing and problematic code. However, if you’d like to use them to accomplish what your code is implying, you can simply add, inside the top of your function:
global Var1, Var2
This will tell Python that you do not intend to define a Var1 or Var2 variable inside the function’s local scope. The Python interpreter sees this at module load time and decides (correctly so) to look up any references to the aforementioned variables in the global scope.
Some Resources
Python local variable referenced before assignment Solution
When you start introducing functions into your code, you’re bound to encounter an UnboundLocalError at some point. This error is raised when you try to use a variable before it has been assigned in the local context.
In this guide, we talk about what this error means and why it is raised. We walk through an example of this error in action to help you understand how you can solve it.
What is UnboundLocalError: local variable referenced before assignment?
Trying to assign a value to a variable that does not have local scope can result in this error:
UnboundLocalError: local variable referenced before assignment
Python has a simple rule to determine the scope of a variable. If a variable is assigned in a function, that variable is local. This is because it is assumed that when you define a variable inside a function you only need to access it inside that function.
There are two variable scopes in Python: local and global. Global variables are accessible throughout an entire program; local variables are only accessible within the function in which they are originally defined.
Let’s take a look at how to solve this error.
An Example Scenario
We’re going to write a program that calculates the grade a student has earned in class.
We start by declaring two variables:
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today. Find Your Bootcamp Match
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job. Start your career switch today
numerical = 36 letter = “F”
These variables store the numerical and letter grades a student has earned, respectively. By default, the value of “letter” is “F”. Next, we write a function that calculates a student’s letter grade based on their numerical grade using an “if” statement:
def calculate_grade(grade): if grade > 80: letter = “A” elif grade > 70: letter = “B” elif grade > 60: letter = “C” elif grade > 50: letter = “D” return letter
Finally, we call our function:
print(calculate_grade(numerical))
This line of code prints out the value returned by the calculate_grade() function to the console. We pass through one parameter into our function: numerical. This is the numerical value of the grade a student has earned.
Let’s run our code and see what happens:
Traceback (most recent call last): File “main.py”, line 15, in
print(calculate_grade(numerical)) File “main.py”, line 13, in calculate_grade return letter UnboundLocalError: local variable ‘letter’ referenced before assignment An error has been raised.
The Solution
Our code returns an error because we reference “letter” before we assign it.
We have set the value of “numerical” to 42. Our if statement does not set a value for any grade over 50. This means that when we call our calculate_grade() function, our return statement does not know the value to which we are referring.
[fasttrack_express_form]We do define “letter” at the start of our program. However, we define it in the global context. Python treats “return letter” as trying to return a local variable called “letter”, not a global variable.
We solve this problem in two ways. First, we can add an else statement to our code. This ensures we declare “letter” before we try to return it:
def calculate_grade(grade): if grade > 80: letter = “A” elif grade > 70: letter = “B” elif grade > 60: letter = “C” elif grade > 50: letter = “D” else: letter = “F” return letter
Let’s try to run our code again:
F
Our code successfully prints out the student’s grade.
If you are using an “if” statement where you declare a variable, you should make sure there is an “else” statement in place. This will make sure that even if none of your if statements evaluate to True, you can still set a value for the variable with which you are going to work.
Alternatively, we could use the “global” keyword to make our global keyword available in the local context in our calculate_grade() function. However, this approach is likely to lead to more confusing code and other issues. In general, variables should not be declared using “global” unless absolutely necessary. Your first, and main, port of call should always be to make sure that a variable is correctly defined.
In the example above, for instance, we did not check that the variable “letter” was defined in all use cases.
That’s it! We have fixed the local variable error in our code.
Conclusion
The UnboundLocalError: local variable referenced before assignment error is raised when you try to assign a value to a local variable before it has been declared. You can solve this error by ensuring that a local variable is declared before you assign it a value.
Now you’re ready to solve UnboundLocalError Python errors like a professional developer!
[SOLVED] Local Variable Referenced Before Assignment
Python treats variables referenced only inside a function as global variables. Any variable assigned to a function’s body is assumed to be a local variable unless explicitly declared as global.
Why Does This Error Occur?
Unboundlocalerror: local variable referenced before assignment occurs when a variable is used before its created. Python does not have the concept of variable declarations. Hence it searches for the variable whenever used. When not found, it throws the error.
Before we hop into the solutions, let’s have a look at what is the global and local variables.
Local Variable Declarations vs. Global Variable Declarations
Local Variables Global Variables A local Global variables are in the global scope, outside a function. A local variable is created when the function is called and destroyed when the execution is finished. A Global Variable is created upon execution and exists in memory till the program stops. Local Variables can only be accessed within their own function. All functions of the program can access global variables. Local variables are immune to changes in the global scope. Thereby being more secure. Global Variables are less safer from manipulation as they are accessible in the global scope.
Trending Different Ways to Add Dimension to NumPy Array
Local Variable Referenced Before Assignment Error with Explanation
Try these examples yourself using our Online Compiler.
Let’s look at the following function:
# Variable decleration outside function (global scope) myVar = 10 def myFunction(): if myVar == 5: print(“5”) elif myVar == 10: print(“10”) elif myVar >= 15: print(“greater than 15 “) # reassigning myVar in the function myVar = 0 myFunction()
Output
Explanation
The variable myVar has been assigned a value twice. Once before the declaration of myFunction and within myFunction itself.
Solutions
Using Global Variables
Passing the variable as global allows the function to recognize the variable outside the function.
myVar = 10 def myFunction(): # Telling the function to consider myVar as global global myVar if myVar == 5: print(“5”) elif myVar == 10: print(“10”) elif myVar >= 15: print(“greater than 15 “) myVar = 0 myFunction()
Output
10
Create Functions that Take in Parameters
Instead of initializing myVar as a global or local variable, it can be passed to the function as a parameter. This removes the need to create a variable in memory.
# Passing myVar as a parameter in the function def myFunction(myVar): if myVar == 5: print(“5”) elif myVar == 10: print(“10”) elif myVar >= 15: print(“greater than 15 “) myVar = 0 myFunction(10)
Output
10
Popular now Must-Know Ways to Tabulate JSON in Python
UnboundLocalError: local variable ‘DISTRO_NAME’
This error may occur when trying to launch the Anaconda Navigator in Linux Systems.
Upon launching Anaconda Navigator, the opening screen freezes and doesn’t proceed to load.
$ anaconda-navigator Traceback (most recent call last): File “/home/user/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/main_window.py”, line 541, in setup self.post_setup(conda_data=conda_data) … … UnboundLocalError: local variable ‘DISTRO_NAME’ referenced before assignment
Solution 1
Try and update your Anaconda Navigator with the following command.
conda update anaconda-navigator
Solution 2
If solution one doesn’t work, you have to edit a file located at
…/anaconda3//lib/python3.7/site-packages/anaconda_navigator/api/external_apps/vscode.py
After finding and opening the Python file, make the following changes:
In the function on line 159, simply add the line:
DISTRO_NAME = None
Save the file and re-launch Anaconda Navigator.
Popular now 6 Different Ways to Convert a Tensor to NumPy Array
DJANGO – Local Variable Referenced Before Assignment [Form]
The program takes information from a form filled out by a user. Accordingly, an email is sent using the information.
from django import forms # Creating a Class for django forms class MyForm(forms.Form): name = forms.CharField(required=True) email = forms.EmailField(required=True) msg = forms.CharField( required=True, widget=forms.Textarea ) … # Create a function to retrieve info from the form def GetContact(request): form_class = ContactForm if request.method == ‘POST’: form = form_class(request.POST) # Upon verifying validity, get following info and email with said info if form.is_valid(): name = request.POST.get(‘name’) email = request.POST.get(’email’) msg = request.POST.get(‘msg’) send_mail(‘Subject here’, msg, email, [‘[email protected]’], fail_silently=False) return HttpResponseRedirect(‘blog/inicio’) return render(request, ‘blog/inicio.html’, {‘form’: form}) …
Upon running you get the following error:
local variable ‘form’ referenced before assignment
Explanation
We have created a class myForm that creates instances of Django forms. It extracts the user’s name, email, and message to be sent.
A function GetContact is created to use the information from the Django form and produce an email. It takes one request parameter. Prior to sending the email, the function verifies the validity of the form. Upon True , .get() function is passed to fetch the name, email, and message. Finally, the email sent via the send_mail function
Why does the error occur?
We are initializing form under the if request.method == “POST” condition statement. Using the GET request, our variable form doesn’t get defined.
FAQs on Local Variable Referenced Before Assignment
How would you avoid using a global variable in multi-threads? With the help of the threading module, you can avoid using global variables in multi-threading. Make sure you lock and release your threads correctly to avoid the race condition.
Conclusion
Therefore, we have examined the local variable referenced before the assignment Exception in Python. The differences between a local and global variable declaration have been explained, and multiple solutions regarding the issue have been provided.
So you have finished reading the unboundlocalerror local variable referenced before assignment topic article, if you find this article useful, please share it. Thank you very much. See more: UnboundLocalError, Referenced before assignment, Local variable referenced before assignment, UnboundLocalError: local variable type referenced before assignment, UnboundLocalError: local variable b referenced before assignment, Global variable Python, UnboundLocalError: local variable username referenced before assignment, UnboundLocalError: local variable str referenced before assignment