Estoy usando Python 3 y estoy tratando de usar mis declaraciones de impresión con el formato str.format.
p.ej:
print ('{0:3d} {1:6d} {2:10s} '.format (count1,count2,string1))
Cuando trato de usar el end=''
para suprimir la nueva línea posterior, esto se ignora. Una nueva línea siempre pasa.
¿Cómo suprimo la nueva línea posterior?
Fuente:
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
nueva línea1 999 qwerty
nueva línea
Su problema es que tiene el argumento end=''
que se pasa a la función de format
, no a la función de print
.
Cambia esta línea:
print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1,end=''))
A esto:
print ( '{0:3d} {1:6d} {2:10s} '.format (int1,int2,string1), end='')
Por cierto, también deberías darle una lectura a PEP8 . Define estándares para los estilos de encoding de Python, que realmente deberías intentar seguir, a menos que estés trabajando con un grupo de personas que hayan acordado otros estándares de estilo. En particular, su espacio es un poco extraño alrededor de las llamadas a funciones: no debe tener espacios entre los nombres de funciones y los paréntesis de argumentos, o entre los paréntesis y el primer argumento. Escribí mi solución sugerida para su problema de una manera que mantiene su estilo actual, pero realmente debería verse más como esto:
print('{0:3d} {1:6d} {2:10s} '.format(int1, int2, string1), end='')