我正在尝试这个,其中i
是一个整数:
sys.stdout.write('\thello world %d.\n' % i+1)
它说“不能连接str和int”。我尝试了各种组合:
int(i) + 1
i + int(1)
...但它不工作
我正在尝试这个,其中i
是一个整数:
sys.stdout.write('\thello world %d.\n' % i+1)
它说“不能连接str和int”。我尝试了各种组合:
int(i) + 1
i + int(1)
...但它不工作
sys.stdout.write('\thello world %d.\n' % (i+1))
注意括号。
(%
运算符比运算符绑定得更紧密+
,因此您最终尝试将 1 添加到格式化字符串,这是一个错误。)
怎么样:
sys.stdout.write('\thello world %d.\n' % (i+1))
Python 将您的方式解释为 ('...' % i) + 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}
而不是普通的{}