2024-04-25 08:37:33 发布
网友
我在Python2.6和2.7下测试了它们。See this is OK: >;>>exec'e=1' >;>>exec'f=2' >;>>exec'g=e+f' >;>>打印g3
See this is OK:
But this returns error: >;>>cont=['e=1','f=2','g=e+f'] >;>>对于cont中的e: ... 尝试: …执行官 ... 除了例外,em: …打印em …无法连接'str'和'int'对象
But this returns error:
那为什么呢? 谢谢!在
您使用e作为循环的变量。当然,它包含一个字符串,因为列表就是这个字符串。改用另一个名字。在
e
你的变量名选择不当。您使用e作为for循环变量和{}中的int变量。第一次通过循环时,e == 'e=1';然后调用exec e,并e == 1;然后下一次通过循环,e == 'f=2',依此类推。当最后一个表达式'g=e+f'是execed时,e不再是int,而是字符串'g=e+f'。在
for
e == 'e=1'
exec e
e == 1
e == 'f=2'
'g=e+f'
exec
您使用
e
作为循环的变量。当然,它包含一个字符串,因为列表就是这个字符串。改用另一个名字。在你的变量名选择不当。您使用}中的int变量。第一次通过循环时,
e
作为for
循环变量和{e == 'e=1'
;然后调用exec e
,并e == 1
;然后下一次通过循环,e == 'f=2'
,依此类推。当最后一个表达式'g=e+f'
是exec
ed时,e
不再是int,而是字符串'g=e+f'
。在相关问题 更多 >
编程相关推荐