如果全局 b>global a:语法错误:语法无效



我在下面代码的第8行得到一个SyntaxError。

import random
import sys
a=random.randint(1, 30)
b=random.randint(1, 30)
c= "minus" or "plus"
print(c)
def f():
if global b>global a:
a=random.randint(1, 30)
b=random.randint(1, 30)
print(a+b) 

我不打算在这里过多地讨论全局变量的不必要使用(最好将a/b作为参数传递)。

您使用的语法(if global b>global a:)无效。global x是一个变量范围的定义,它只做一次,应该在它自己的行上。

正确的语法应该是:
import random
import sys
a=random.randint(1, 30)
b=random.randint(1, 30)
c= "minus" or "plus"             ## not sure what this is doing
print(c)
def f():
global a                     ## definition of global scope
global b
if b>a:                      ## use of variables
a=random.randint(1, 30)
b=random.randint(1, 30)
print(a+b) 

,假设你想在某个时刻调用f:

f()