python - salto - Cómo imprimir variables sin espacios entre valores
int input python (6)
Es la coma la que proporciona ese espacio en blanco adicional.
Una forma es usar el método de cadena
%
:
print ''Value is "%d"'' % (value)
que es como
printf
en C, lo que le permite incorporar y formatear los elementos después de
%
mediante el uso de especificadores de formato en la propia cadena.
Otro ejemplo, que muestra el uso de múltiples valores:
print ''%s is %3d.%d'' % (''pi'', 3, 14159)
Para lo que vale, Python 3 mejora enormemente la situación al permitirle especificar el separador y el terminador para una sola llamada de
print
:
>>> print(1,2,3,4,5)
1 2 3 4 5
>>> print(1,2,3,4,5,end=''<</n'')
1 2 3 4 5<<
>>> print(1,2,3,4,5,sep='':'',end=''<</n'')
1:2:3:4:5<<
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo imprimir sin nueva línea o espacio? 21 respuestas
Me gustaría saber cómo eliminar espacios adicionales cuando imprimo algo.
Como cuando lo hago:
print ''Value is "'', value, ''"''
El resultado será:
Value is " 42 "
Pero yo quiero:
Value is "42"
¿Hay alguna forma de hacer esto?
No utilices
print ...,
si no quieres espacios.
Utilice la concatenación de cadenas o el formato.
Concatenación:
print ''Value is "'' + str(value) + ''"''
Formateo:
print ''Value is "{}"''.format(value)
Este último es mucho más flexible, consulte la
documentación del método
str.format()
y la
sección
Sintaxis de cadena de formato
.
También encontrarás el
estilo de formato
%
anterior:
print ''Value is "%d"'' % value
print ''Value is "%d", but math.pi is %.2f'' % (value, math.pi)
pero esto no es tan flexible como el nuevo método
str.format()
.
Para construir sobre lo que Martjin estaba diciendo. Usaría interpolación / formateo de cadenas.
En Python 2.x, que parece ser lo que estás usando debido a la falta de paréntesis en torno a la función de impresión que haces:
print ''Value is "%d"'' % value
En Python 3.x usarías el método de formato, así que tu código se vería así.
message = ''Value is "{}"''
print(message.format(value))
Solo una respuesta fácil para el futuro que encontré fácil de usar como iniciador: similar a usar
end=''''
para evitar una nueva línea, puede usar
sep=''''
para evitar los espacios en blanco ... para esta pregunta aquí, se vería así:
print(''Value is "'', value, ''"'', sep = '''')
Que pueda ayudar a alguien en el futuro.
https://docs.python.org/2/library/functions.html#print
print (* objetos, sep = '''', end = ''/ n'', archivo = sys.stdout)
Nota: Esta función normalmente no está disponible como una función incorporada, ya que la impresión del nombre se reconoce como la declaración de impresión. Para deshabilitar la declaración y usar la función print (), use esta declaración futura en la parte superior de su módulo:
de la futura importación print_function
>>> value=42
>>> print "Value is %s"%(''"''+str(value)+''"'')
Value is "42"