lancaster99 发表于 2022-6-15 09:09:07

python基础

def demo():
        x = 5
x = 3
demo()
print(x)

答案是3   

如何理解请问

wp231957 发表于 2022-6-15 09:16:06

里面的x和外面的x没有关系

lancaster99 发表于 2022-6-15 09:17:29

wp231957 发表于 2022-6-15 09:16
里面的x和外面的x没有关系

那这个式子的运行顺序是啥 懵逼了

wp231957 发表于 2022-6-15 09:43:53

lancaster99 发表于 2022-6-15 09:17
那这个式子的运行顺序是啥 懵逼了

因为demo没有返回值
所以下面的demo()可以忽略不计,所以输出3就没有任何疑义了吧!!

傻眼貓咪 发表于 2022-6-15 12:48:25

lancaster99 发表于 2022-6-15 09:17
那这个式子的运行顺序是啥 懵逼了

def demo():
          x = 5
x = 3
demo()
print(x)

顺序:
(一)定义函数 demo
(二)创建变量 x,并且初始化值 3(注:这里的 x 是全局变量)
(三)调用 demo(注:demo 函数只是创建局部变量 x,赋值 5,也没有做其它事。意思就是自己跟自己玩,不影响他人)
(四)打印变量 x

临时号 发表于 2022-6-15 12:59:07

def demo():
          x = 5
x = 3
demo()
print(x)
执行顺序:
1)定义了demo函数(此时demo函数还未被执行)
2)执行x=3的操作(这个x是全局变量,作用域在整个程序)
3)调用demo函数(虽然全局变量的作用域是整个程序,按理来说在demo函数内可以调用全局变量x,但这里涉及到了赋值操作,因此python会在这个函数中再创建一个局部变量x,将5赋给局部变量x,全局变量x的值依旧是3)
4)跳出demo函数,因为是在demo函数外面打印的,所以打印的是全局变量x,所以输出了3

lancaster99 发表于 2022-6-18 14:43:00

傻眼貓咪 发表于 2022-6-15 12:48
def demo():
          x = 5
x = 3


如果想打印x=5 就是把print缩进一格吗还是怎么操作

allen-xy 发表于 2022-6-18 15:15:23

全局变量
局部变量
页: [1]
查看完整版本: python基础