在python 3 str.format中禁止打印换行符

时间:2015-04-11 22:00:12

标签: python python-3.x printing format newline

我正在使用Python 3,并尝试将我的print语句与str.format一起使用。

e.g:

print ('{0:3d} {1:6d} {2:10s} '.format (count1,count2,string1)) 

当我尝试使用end=''来抑制后续换行时,会被忽略。换行总是会发生。

如何取消后续换行?

来源:

int1= 1
int2 = 999
string1 = 'qwerty'
print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1))
print ('newline')
print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1,end=''))
print ('newline')
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "copyright", "credits" or "license()" for more information.
  

1 999 qwerty
  换行

     

1 999 qwerty
  换行

1 个答案:

答案 0 :(得分:4)

您的问题是您将end=''参数传递给format函数,而不传递给print函数。

更改此行:

print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1,end=''))

对此:

print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1), end='')

顺便说一下,你还应该给PEP8一个读数。它定义了Python编码样式的标准,您应该尝试遵循这些标准,除非您与一组已经就其他样式标准达成一致的人合作。特别是,你的间距在函数调用周围有点奇怪 - 你不应该在函数名和参数括号之间,或者在括号和第一个参数之间有空格。我以保持当前风格的方式编写了我建议的问题解决方案,但它应该看起来更像这样:

print('{0:3d} {1:6d} {2:10s} '.format(int1, int2, string1), end='')