2011-05-12 79 views
0

我在python 2.6和2.7下测试了这些。
See this is OK:
> > > EXEC 'E = 1'
> > > EXEC 'F = 2'
> > > EXEC 'G = E + F'
> > >打印克

python exec问题:为什么不能连接'str'和'int'对象

But this returns error:
> > >续= [ 'E = 1', 'F = 2', 'G = E + F']
> > >为电子在CONT:
...尝试:
.. 。        EXECè
......除了例外,EM:
...        打印EM
...
不能连接'str'和'int'对象

那么为什么? 谢谢!

回答

5

您已经很差地选择了您的变量名称。您使用e作为for循环变量和cont[0]中的int变量。第一次通过循环,e == 'e=1';那么调用exec ee == 1;然后通过循环下一次,e == 'f=2',等等。到最后一个表达式'g=e+f'exec ed时,e不再是一个整数,而是一个字符串 - 字符串'g=e+f'

+0

cont [0] ='e = 1' – 2011-05-12 03:11:58

+0

@ good man,oops - good point。 – senderle 2011-05-12 03:13:05

2

您正在使用e作为循环的变量。自然,它包含一个字符串,因为这是列表包含的内容。改用另一个名字。

相关问题