鱼C论坛

 找回密码
 立即注册
查看: 859|回复: 4

[已解决]求大佬帮帮我吧!!!

[复制链接]
发表于 2020-5-25 15:13:27 | 显示全部楼层 |阅读模式

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

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

x
def fun(var):
    var = 1314
    print(var, end='')

var = 520
fun(var)
print(var)

请问各位大哥们,这个为什么会输出1314520呢?我一开始想的是打印520,求大佬解释
最佳答案
2020-5-25 15:37:37
一眼看下去还没明白前面几位大哥的意思
你的代码执行
var = 520
fun(var)
print(var)
>>> fun(var)
1314
>>> print(var)
520
因为前面定义 fun(var) 时 代码是
print(var, end='')
end='' ,所以就连起来了显示了1314520
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 15:16:03 | 显示全部楼层
这个就是变量的作用域。
你在fun里面是无法改变var的,只能通过global。
函数里面定义的var是只属于函数的,函数打印完自己的var之后,就退出函数了,
然后你在外面打印了520,结果就是1314520.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 15:18:17 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-25 15:30 编辑

小甲鱼老师上课 小伙汁你没认真听讲了

这里函数外部的变量叫全局变量,当函数内部有个和函数外部变量名相同的变量,会启动  ' 屏蔽 ' 机制

函数内部会临时创建一个局部变量 来覆盖同名的全局变量,屏蔽函数外部的同名变量,一出该函数范围,局部变量就消失了,又变回原来的全局变量的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 15:37:37 | 显示全部楼层    本楼为最佳答案   
一眼看下去还没明白前面几位大哥的意思
你的代码执行
var = 520
fun(var)
print(var)
>>> fun(var)
1314
>>> print(var)
520
因为前面定义 fun(var) 时 代码是
print(var, end='')
end='' ,所以就连起来了显示了1314520
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 15:40:39 | 显示全部楼层
沐羽尘 发表于 2020-5-25 15:37
一眼看下去还没明白前面几位大哥的意思
你的代码执行

噗 对哦 还漏了 end 参数没说...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 01:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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