2012-10-03 14 views
12

Soy nuevo en Python y me pregunto cómo imprimir varios valores sin tener que agregar espacio adicional entre ellos. Quiero la salida ab en lugar de a b sin tener que llamar print dos veces:Imprimir sin espacio en python 3

print("a", end="") 
print("b") 

Además, tengo el siguiente código:

a = 42 
b = 84 

y quiero imprimir sus valores como a = 42, b = 84, sin embargo, si no se añaden

print("a = ", a, ", ", b = ", b) 

espacios adicionales (que da salida a a = 42 , b = 84)

mientras que el estilo de Java,

print("a = " + a + ", b = " + b) 

plantea una TypeError.

Respuesta

18

Puede utilizar el parámetro sep para deshacerse de los espacios:

>>> print("a","b","c") 
a b c 
>>> print("a","b","c",sep="") 
abc 

no sé qué quiere decir con "estilo de Java"; en Python no puede agregar cadenas a (digamos) enteros de esa manera, aunque si a y b son cadenas, funcionará. Tiene varias otras opciones, por supuesto:

>>> print("a = ", a, ", b = ", b, sep="") 
a = 2, b = 3 
>>> print("a = " + str(a) + ", b = " + str(b)) 
a = 2, b = 3 
>>> print("a = {}, b = {}".format(a,b)) 
a = 2, b = 3 

e incluso (aunque no recomiendo esto, en general, que viene muy bien a veces y no tiene sentido pretender lo contrario):

>>> print("a = {a}, b = {b}".format(**locals())) 
a = 2, b = 3 
>>> print("b = {b}, a = {a}".format(**locals())) 
b = 3, a = 2 
0

En this page la respuesta es imprimir su texto normal y al final para usar sep="".

Así el comando

print("Hole", hole, "Par", par, sep="") 

dará

"Hole1Par4" 

asumiendo que hole==1 y par==4.

0

También puede utilizar

print("%d%d" %(a,b)) 

para imprimir A y B no separados por espacios en forma de una cadena con formato. Esto es similar al de c.