在 python 3 str.format 中禁止打印换行符
Suppress print newline in python 3 str.format
我正在使用 Python 3 并尝试将我的打印语句与 str.format.
一起使用
例如:
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
newline
1 999 qwerty
newline
您的问题是您将 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='')
我正在使用 Python 3 并尝试将我的打印语句与 str.format.
一起使用例如:
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
newline1 999 qwerty
newline
您的问题是您将 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='')