Операторы global
сообщают python, что в области действия функции randomValue
переменная seed
ссылается на глобальную переменную, а не на локальную переменную в контексте функции randomValue
.
Заменить:
def randomValue(a,m,c,seed):
x1=(a*seed+c )%m
seed = x1
return (x1/m)
на:
def randomValue(a,m,c,seed):
global seed
x1=(a*seed+c )%m
seed = x1
return (x1/m)
Чтобы лучше понять global
переменные учитывают следующий пример:
A = 10
def func1():
print("\nThe value of A inside func1 is:", A)
def func2():
A = 20
print("\nThe value of A inside func2 is:", A)
def func3():
global A
A = 20
print("\nThe value of A inside func3 is:", A)
func1()
print("The value of variable A after calling func1 is:", A)
func2()
print("The value of variable A after calling func2 is:", A)
func3()
print("The value of variable A after calling func3 is:", A)
Выход:
The value of A inside func1 is: 10
The value of variable A after calling func1 is: 10
The value of A inside func2 is: 20
The value of variable A after calling func2 is: 10
The value of A inside func3 is: 20
The value of variable A after calling func3 is: 20