在print语句中包含一个整数

时间:2013-03-14 05:46:19

标签: python

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

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

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

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

......但它不起作用

3 个答案:

答案 0 :(得分:6)

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

注意括号。

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

答案 1 :(得分:2)

怎么样:

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

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

答案 2 :(得分:1)

如果您的Python版本足以支持它(<2.6>),则首选{p> str.format,您甚至不必担心{{的优先级1}}和%此处。

+

或问题的标题建议 - 使用打印声明

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

在Python3中,print '\thello world {}.'.format(i+1) 是一个函数,所以你需要像这样调用它

print

†在Python2.6中,您需要使用print('\thello world {}.'.format(i+1)) 代替普通{0}