设置多个全局变量时"not all arguments converted during string formatting"



我想使用迭代生成唯一的变量。我尝试使用 globals(( 函数编写代码,但由于某种原因它不起作用。

for i in (range(0,7)): 
for v in range(0,7): 
globals()['element%s' % (i,v)] = []

老实说,你不应该globals(阅读材料(。但是您的错误来自这样一个事实,即您尝试转换为字符串(i, v)大小为 2 的参数,并且您要求转换的地方只有一个:%s。如果你想让它工作,你的字符串中需要有 2X%s

for i in (range(0,4)):
for v in range(0,3):
print('%selement%s' % (i,v))
0element0
0element1
0element2
1element0
1element1
1element2
2element0
2element1
2element2
3element0
3element1
3element2

问题出在文本格式上。

请尝试globals()[f'elements{i,v}'] = []

你可以使用这样的东西。请注意,修改globals()很少是一个好主意,请看一下。

for i in range(5):
globals()['myvar'+str(i)] = i**2
print(myvar2)
print(myvar3)

输出:

4
9

相关内容

最新更新