0

我无法在不打印新行的情况下在单行上打印输出,以下代码显示语法错误:

print( "tiers found:"+eval("str.lower(tier.attrib['TIER_ID'])"), end=', ')
                                                                        ^
SyntaxError: invalid syntax

但这很好用:

print( "tiers found:"+eval("str.lower(tier.attrib['TIER_ID'])"))

print 语句在 for 循环中,我需要将输出打印为逗号分隔的列表。那么这里有什么问题呢?

4

2 回答 2

3

你为什么在一个完全理智的陈述上使用 eval ?

from __future__ import print_function
print('tiers found: {0}'.format(tier.attrib['TIER_ID'].lower()), end=',')
于 2013-08-28T10:43:09.330 回答
0

一个原因可能是第一段代码是使用 Python 2 执行的,而第二段代码是使用 Python 3 执行的。

如果不是这样,那就试试吧end=", "。我的猜测是第二个单引号实际上并不是您想要的引号(即它是反引号而不是单引号或类似的东西)。

或者那里可能有一个您在编辑器中看不到的非法字符。

于 2013-08-28T10:41:57.750 回答