鱼C论坛

 找回密码
 立即注册
查看: 1453|回复: 7

[已解决]python基础

[复制链接]
发表于 2022-6-15 09:09:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

答案是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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-15 09:16:06 From FishC Mobile | 显示全部楼层
里面的x和外面的x没有关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-15 09:17:29 | 显示全部楼层
wp231957 发表于 2022-6-15 09:16
里面的x和外面的x没有关系

那这个式子的运行顺序是啥 懵逼了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-15 09:43:53 From FishC Mobile | 显示全部楼层
lancaster99 发表于 2022-6-15 09:17
那这个式子的运行顺序是啥 懵逼了

因为demo没有返回值
所以下面的demo()可以忽略不计,所以输出3就没有任何疑义了吧!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-15 12:48:25 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
lancaster99 发表于 2022-6-15 09:17
那这个式子的运行顺序是啥 懵逼了

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

顺序:
(一)定义函数 demo
(二)创建变量 x,并且初始化值 3(注:这里的 x 是全局变量)
(三)调用 demo(注:demo 函数只是创建局部变量 x,赋值 5,也没有做其它事。意思就是自己跟自己玩,不影响他人)
(四)打印变量 x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-6-15 12:59:07 | 显示全部楼层
  1. def demo():
  2.           x = 5
  3. x = 3
  4. demo()
  5. print(x)
复制代码

执行顺序:
1)定义了demo函数(此时demo函数还未被执行)
2)执行x=3的操作(这个x是全局变量,作用域在整个程序)
3)调用demo函数(虽然全局变量的作用域是整个程序,按理来说在demo函数内可以调用全局变量x,但这里涉及到了赋值操作,因此python会在这个函数中再创建一个局部变量x,将5赋给局部变量x,全局变量x的值依旧是3)
4)跳出demo函数,因为是在demo函数外面打印的,所以打印的是全局变量x,所以输出了3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-6-18 14:43:00 | 显示全部楼层
傻眼貓咪 发表于 2022-6-15 12:48
def demo():
          x = 5
x = 3

如果想打印x=5 就是把print缩进一格吗还是怎么操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-18 15:15:23 | 显示全部楼层
全局变量
局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 20:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表