需要在Python中创建helpvariable(续)

2024-10-01 00:23:49 发布

您现在位置:Python中文网/ 问答频道 /正文

That对kgiannakakis很有帮助。 我面临的问题如下:

a = ['zbc','2.3']
for i in range(0,5):
    exec('E%d=%s' %(i,a[i]))

这将导致:

^{pr2}$

Tags: inforthatrangeexecpr2zbckgiannakakis
3条回答

好吧。这个代码很奇怪。在

作为这样的一行程序,它在语法上是不正确的,但我怀疑您由于某种原因而错过了换行符。但后来它变成了

a = ['zbc','2.3']
for i in range(0,5): 
    exec('E%d=%s' %(i,a[i]))

但这将导致引用[i]时出现索引错误,如图所示:

^{pr2}$

如果你避免这个问题,你会得到

exec("E2.3=1")

在第二次通过lopp时,这也是一个语法错误。在

似乎您正在尝试使用this问题中标记的解决方案。在

如果您的目标是访问循环中的值,则应该使用列表。这种奇怪的带有数字的变量名概念在任何语言中都不应该使用。试试这个。在

vals = ['foo', 'bar', 'blah', 67, -0.4, 'your mom']
for i in range(len(vals)):
    print(vals[i])

这是一个由整数索引的值列表的正确方法,而不是将其放入变量名中。在

您生成的代码似乎扩展到:

E0=zbc
E1=2.3

在循环的下一次迭代中,您将得到一个IndexError异常,因为a只有两个元素长。在

因此,鉴于上述情况,您正试图将zbc的值赋给E0。如果zbc不存在(似乎不存在),那么您将得到您提到的namererror。在

很难确定您到底想用这段代码做什么,所以我不确定该推荐什么。您可以指定字符串:

^{pr2}$

这将扩展到:

E0="zbc"
E1="2.3"

仍然会得到索引器错误,因为数组a不是5个元素长。这对你来说应该是个容易的办法。在

相关问题 更多 >