python exec问题:为什么不能连接'str'和'int'对象
问题描述:
我在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'对象
那么为什么? 谢谢!
答
您已经很差地选择了您的变量名称。您使用e
作为for
循环变量和cont[0]
中的int变量。第一次通过循环,e == 'e=1'
;那么调用exec e
和e == 1
;然后通过循环下一次,e == 'f=2'
,等等。到最后一个表达式'g=e+f'
为exec
ed时,e
不再是一个整数,而是一个字符串 - 字符串'g=e+f'
。
答
您正在使用e
作为循环的变量。自然,它包含一个字符串,因为这是列表包含的内容。改用另一个名字。
cont [0] ='e = 1' – 2011-05-12 03:11:58
@ good man,oops - good point。 – senderle 2011-05-12 03:13:05