9 AnswersNew Answer
Prabhas Koya , we should be careful by saying: "You cannot modify a global variable in a function". it depends on what we are going to modify. if we modify variable 'test' inside the function, we are going to re-assign the variable by using '=' or like '+= ...'. this is not possible, but we can change this behavior by using the global keyword for test. but we can have a variable 'lst' with a list of numbers or whatever, where we can modify the elements of the list, without using global for this variable. test = 0 lst = [1,2,3] def add(num): global test test = test + num lst = 99 add(7) print(test) print(lst)
You cannot modify a global variable(for a list see below example, how we can access and modify it) in a function, but you can access it. If you want to modify you need to declare the variable free as global in your function Ex- free = 0 def func(): global free free += 2 func() print(free)# output 2 *Instead you can place the variable free inside the function, but if you want to keep the reference of free everytime you call then make it a global variable.(using global is usually a not good idea, so placing a parameter for every call would be one of your option or use a list instead to change the references of free variable for every call) ex- free = [False] def func(): if not free: print('you can change me) free = not free #for alternating ''' if you want to make it just available once you can simply do free = True ''' else: print('Now you cannot modify me') #once check you logic statement for time , it meant it wants time only under 2 or equal to it
Declare in the function: global free Also the logic in line 6 needs correction. time <= 2 should be time >= 2
Lothar variable list; generally we talk about list ,yet I gave him an example of the list , thanks for mentioning, I will add additional info ,if there might be a confusion. You mentioned we can modify a list but we cannot modify it with += inside a function ,,,
How you are doing? I didn't get any error.
I didn't, and on my PC I get this error....local variable 'free' referenced before assignment 😐
Did you get the free pass????