我正在使用python 3.10.2,我想要制作一个通过红、绿和蓝值循环的程序,但是变量并没有全部改变,尽管我在for循环之前将变量设置为全局变量。
这是我写的
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')它打印这个
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
255 0 0
...(比这多很多次)
我以为它会把这个打印出来
255 0 0
254 1 0
253 2 0
252 3 0
251 4 0
250 5 0
...我需要做什么(抱歉英语不好)
发布于 2022-03-21 18:49:19
我认为问题在于,在f-字符串中传递字符串值。但是“r”、“g”和“b”已经是字符串了。试着做
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')https://stackoverflow.com/questions/71562602
复制相似问题