鱼C论坛

 找回密码
 立即注册
查看: 2904|回复: 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 关键字,如下所示:

  1. total = 10

  2. def remove():
  3.     global total
  4.     print(total)
  5.     for i in range(5):
  6.         total -= 1
  7.     print(total)
复制代码


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

请注意,在函数中使用全局变量会增加代码的复杂度,因此请根据实际需求谨慎使用。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

  1. total = 10

  2. def remove():
  3.     global total
  4.     print(total)
  5.     for i in range(5):
  6.         total -= 1
  7.     print(total)
复制代码


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

请注意,在函数中使用全局变量会增加代码的复杂度,因此请根据实际需求谨慎使用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-14 17:22:56 | 显示全部楼层
  1. total -= 1
复制代码

了解一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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