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 :)
python - name 'times' is used prior to global declaration - But IT IS declared!
It means that once you declare a program, its global variable will be available for use throughout the running of the entire program.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With