首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么变量在函数中不变?

为什么变量在函数中不变?
EN

Stack Overflow用户
提问于 2022-03-21 18:42:50
回答 1查看 51关注 0票数 -2

我正在使用python 3.10.2,我想要制作一个通过红、绿和蓝值循环的程序,但是变量并没有全部改变,尽管我在for循环之前将变量设置为全局变量。

这是我写的

代码语言:javascript
运行
复制
r,g,b=255,0,0
def c(c,v):
    global r,g,b
    for _ in range(255):
        exec(f'{c}-=1')
        exec(f'{v}+=1')
        print(r,g,b)
c('r','g')
c('g','b')
c('b','r')

它打印这个

代码语言:javascript
运行
复制
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
...

(比这多很多次)

我以为它会把这个打印出来

代码语言:javascript
运行
复制
255 0 0
254 1 0
253 2 0
252 3 0
251 4 0
250 5 0
...

我需要做什么(抱歉英语不好)

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 18:49:19

我认为问题在于,在f-字符串中传递字符串值。但是“r”、“g”和“b”已经是字符串了。试着做

代码语言:javascript
运行
复制
r,g,b=255,0,0
def c(c,v):
    global r,g,b
    for _ in range(255):
        exec(c + '-=1')
        exec(v + '+=1')
        print(r,g,b)
c('r','g')
c('g','b')
c('b','r')
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71562602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档