我正在使用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='')