Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

name 'times' is used prior to global declaration - But IT IS declared!

I'm coding a small program to time and show, in a ordered fashion, my Rubik's cube solvings. But Python (3) keeps bothering me about times being used prior to global declaration. But what's strange is that IT IS declared, right on the beggining, as times = [] (yes, it's a list) and then again, on the function (that's where he complains) as times = [some, weird, list] and "globaling" it with global times. Here is my code, so you may analyse it as you want:

import time  times = []  def timeit():     input("Press ENTER to start: ")     start_time = time.time()     input("Press ENTER to stop: ")     end_time = time.time()     the_time = round(end_time - start_time, 2)     print(str(the_time))     times.append(the_time)     global times     main()  def main():     print ("Do you want to...")     print ("1. Time your solving")     print ("2. See your solvings")     dothis = input(":: ")     if dothis == "1":         timeit()     elif dothis == "2":         sorte_times = times.sort()         sorted_times = sorte_times.reverse()         for curr_time in sorted_times:             print("%d - %f" % ((sorted_times.index(curr_time)+1), curr_time))     else:         print ("WTF? Please enter a valid number...")         main()  main() 

Any help would be very appreciated as I'm new in the world of Python :)

like image 875
AntonioPT Avatar asked Jan 20 '10 22:01

AntonioPT


People also ask

Is used prior to global declaration in Python?

python - name 'times' is used prior to global declaration - But IT IS declared!

What is the use of global declaration?

It means that once you declare a program, its global variable will be available for use throughout the running of the entire program.

What does global declaration mean?

The globalBindings declaration has global scope and is used to customize the bindings globally for all schemas. A schema can have only one such declaration, and the declaration affects all the imported and included schemas.

What are global variables in Python?

Variables that are created outside of a function (as in all of the examples above) are known as global variables. Global variables can be used by everyone, both inside of functions and outside.


1 Answers

The global declaration is when you declare that times is global

def timeit():     global times # <- global declaration     # ... 

If a variable is declared global, it can't be used before the declaration.

In this case, I don't think you need the declaration at all, because you're not assigning to times, just modifying it.

like image 58
John Millikin Avatar answered Sep 23 '22 11:09

John Millikin