¿Cómo evito que la impresión de Python agregue nuevos renglones o espacios?



Answers

Solo un comentario. En Python 3 , usarás

print('h', end='')

para suprimir el terminador final, y

print('a', 'b', 'c', sep='')

para suprimir el separador de espacios en blanco entre los elementos.

Question

Esta pregunta ya tiene una respuesta aquí:

En Python, si digo

print 'h'

Recibo la letra hy una nueva línea. Si yo digo

print 'h',

Recibo la letra h y no nueva línea. Si yo digo

print 'h',
print 'm',

Obtengo la letra h, un espacio y la letra m. ¿Cómo puedo evitar que Python imprima el espacio?

Las instrucciones de impresión son iteraciones diferentes del mismo ciclo, por lo que no puedo usar el operador +.




¡Recupera el control de tu consola! Simplemente:

from __past__ import printf

donde __past__.py contiene:

import sys
def printf(fmt, *varargs):
    sys.stdout.write(fmt % varargs)

entonces:

>>> printf("Hello, world!\n")
Hello, world!
>>> printf("%d %d %d\n", 0, 1, 42)
0 1 42
>>> printf('a'); printf('b'); printf('c'); printf('\n')
abc
>>>

Bonificación extra: si no te gusta print >> f, ... , puedes extender esta alcaparra a fprintf (f, ...).




En Python 2.6:

>>> print 'h','m','h'
h m h
>>> from __future__ import print_function
>>> print('h',end='')
h>>> print('h',end='');print('m',end='');print('h',end='')
hmh>>>
>>> print('h','m','h',sep='');
hmh
>>>

Entonces, usando print_function desde __future__ puede establecer explícitamente los parámetros sep y end para la función de impresión.




import sys
a=raw_input()
for i in range(0,len(a)):
       sys.stdout.write(a[i])



Tuve el mismo problema una vez que quise leer algunos dígitos de un archivo. Lo solucioné así:

f = open('file.txt', 'r')
for line in f:   
    print(str.split(line)[0])



O use un + , es decir:

>>> print 'me'+'no'+'likee'+'spacees'+'pls'
menolikeespaceespls

Solo asegúrate de que todos sean objetos concatenables.




Para completar, otra forma es eliminar el valor del espacio suave después de realizar la escritura.

import sys
print "hello",
sys.stdout.softspace=0
print "world",
print "!"

imprime helloworld !

Sin embargo, usar stdout.write () es más conveniente para la mayoría de los casos.




print("{0}{1}{2}".format(a, b, c))



Related