因为第一次print的时候还没有进入f(),这个时候x没有修改,直到调用了f()才引起x的变化,你可以把你的代码执行顺序这样理解
x=10 print(x) def f(): global x x =0 print(x) f() print(x)
没有问题啊,第一输出你并并没有调用函数,没有重新赋值,自然是10