鱼C论坛

 找回密码
 立即注册
查看: 2268|回复: 2

[已解决]为什么全局变量无法应用到函数中的for循环中????

[复制链接]
发表于 2023-3-14 12:53:33 | 显示全部楼层 |阅读模式

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

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

x

最近碰到个问题,
我定义一个全局变量total,
如果只是简单在函数中打印,是没问题
total = 10
def remove():
    print(total)

但是我在函数中使用了for循环,
它就无法传递,
提示:local variable 'total' referenced before assignment
total = 10
def remove():
    print(total)
    for i in range(5):
        total -= 1

因为这个变量的数值开始运行时是固定的,
后面是会变化的,
所以我不能用函数形参进行传递remove(total)

说白了,我就想这个函数只获取一次这个变量的值,
后续由这个函数进行处理这个变量值。
请教下高手们,感谢!!!!
最佳答案
2023-3-14 12:59:30
你可以使用 global 关键字来在函数中引用全局变量。

在你的例子中,你可以将 total 声明为全局变量并在函数中使用 global 关键字,如下所示:
total = 10

def remove():
    global total
    print(total)
    for i in range(5):
        total -= 1
    print(total)

这样,你就可以在函数中访问并修改全局变量 total 的值了。

请注意,在函数中使用全局变量会增加代码的复杂度,因此请根据实际需求谨慎使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-14 12:59:30 | 显示全部楼层    本楼为最佳答案   
你可以使用 global 关键字来在函数中引用全局变量。

在你的例子中,你可以将 total 声明为全局变量并在函数中使用 global 关键字,如下所示:
total = 10

def remove():
    global total
    print(total)
    for i in range(5):
        total -= 1
    print(total)

这样,你就可以在函数中访问并修改全局变量 total 的值了。

请注意,在函数中使用全局变量会增加代码的复杂度,因此请根据实际需求谨慎使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-14 17:22:56 | 显示全部楼层
total -= 1
了解一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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