• 周六. 9 月 14th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

python中局部和全局变量输出的混乱

King Wang

3 月 7, 2023

我是python的新手,曾尝试过局部和全局变量。
“example1”生成了输出“6,16,6”,正如预期的那样。你知道吗

x=6
def example1():
  print x
  print (x+10)
  print x  
example1()

在第二个例子中:

x=6
def example2():
   print x
   print (x+10)
print x  
example2()

我希望o/p为’6,16,6’,但输出为’6,6,16’。有人能在“example2()”中解释为什么会发生这种情况吗?你知道吗

(我认为’example2’中的第二个’print x’语句是指全局变量x(等于6),因此认为’6,16,6’应该是输出)

Tags:

def情况局部语句例子example1print新手全局变量example22条回答网友

1楼 ·

编辑于 2023-03-06 23:31:00

在第二个例子中,x的第一个值是6。然后调用方法example2(),该方法将首先打印x(即6),然后再打印x+10。你知道吗

因此输出将是:

6
6
16

为了更好地理解,以下是程序的执行顺序:

x=6
def example2():
   print x
   print (x+10)
print x  # this will be called first, so the first output is 6
example2() # then this, which will print 6 and then 16

网友

2楼 ·

编辑于 2023-03-06 23:31:00

x=6
def example2():
   print x +"2nd call"
   print (x+10)
print x+" 1st call"  # This print gets call first
example2()

我想这就解释了。第一个print在函数失效时首先被调用,在函数之前也被调用
如果你想输出为6,16,6,做如下改变

x=6
def example2():
   print x
   print (x+10) 
example2()
print x 

发表回复