【Python避坑】Jupyter Notebook编辑器里局部变量与全局变量不区分?且用且注意!

最近博主在教高中小学妹Python入门系列的课程,为讲解方便,IDE一直用的是Jupyter Notebook。
在讲到变量作用域这章的时候,发现我在函数外调用函数内定义的局部变量,结果运行成功了??
差点让我以为是现在的编辑器已经不区分了,结果到PyCharm里运行一遍之后,发现正常报错了!
猛然意识到,原来Jupyter Notebook…

问题报错

l离谱吗?
还是PyCharm好!

问题解决

1、当我在Jupyter Notebook中一直能成功运行的时候,我突然想到一个问题,就是它会将我们运行后的代码中的变量信息会保存
2、因为我是在教学中遇到这个问题的,一开始并不是直接运行这个代码,可以看到我在代码第一行注释了全局变量length
3、我是先将length作为全局变量运行了一遍代码,再将其注释,改成mean()函数中的局部变量length,再次运行产生的问题。
4、所以我猜测,Jupyter Notebook在保存完全局变量length之后,后面对其变成局部变量并没有进行保存,所以我重新刷新了一遍代码界面(重启服务),果然问题解决了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
u1s1,第一次因为自己写的代码终于报错了让我感到很欣慰!朋友们可以自己体验一下!

# length = 10

def mean():
    length = 10
    sum_x = 0
    for i in range(1,10):
        sum_x = sum_x + i
    print("sum_x = ", sum_x)
    return sum_x / length

print("length = ", length)
print("sum_x / length = ", mean())

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南浔Pyer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值