【问题标题】:Suppress print newline in python 3 str.format禁止在 python 3 str.format 中打印换行符
【发布时间】:2015-06-17 11:29:49
【问题描述】:

我正在使用 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
换行

1 999 qwerty
换行

【问题讨论】:

  • 您能否展示您在尝试使用 end 参数时使用的代码?
  • @skrrgwasme - 上面添加了代码。输出以某种方式被拆分,但对于两个打印语句都是相同的。

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


【解决方案1】:

您的问题是您将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='')

【讨论】:

  • 完美!谢谢@skrrgwasme
猜你喜欢
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
相关资源
最近更新 更多