1

我正在尝试这个,其中i是一个整数:

sys.stdout.write('\thello world %d.\n' % i+1)

它说“不能连接str和int”。我尝试了各种组合:

int(i) + 1
i + int(1)

...但它不工作

4

3 回答 3

6
sys.stdout.write('\thello world %d.\n' % (i+1))

注意括号。

%运算符比运算符绑定得更紧密+,因此您最终尝试将 1 添加到格式化字符串,这是一个错误。)

于 2013-03-14T05:49:25.507 回答
2

怎么样:

sys.stdout.write('\thello world %d.\n' % (i+1))

Python 将您的方式解释为 ('...' % i) + 1

于 2013-03-14T05:50:06.923 回答
1

str.format如果您的 Python 版本足够新以支持它(Python2.6+),则首选看到您甚至不需要担心%and的优先级+

sys.stdout.write('\thello world {}.\n'.format(i+1))

或者正如问题的标题所暗示的 - 使用打印语句

print '\thello world {}.'.format(i+1)

在 Python3 中,print是一个函数,所以你需要这样调用它

print('\thello world {}.'.format(i+1))

† 在 Python2.6 中你需要使用{0}而不是普通的{}

于 2013-03-14T06:03:37.153 回答