Concatenar cadena y entero en python


En python digamos que tienes

s = "string"
i = 0
print s+i

Te dará un error así que escribes

print s+str(i) 

Para no obtener error.

Creo que esta es una forma bastante torpe de manejar la concatenación int y string. Incluso Java no necesita un casting explícito a String para hacer esta ordenación de concatenación. ¿Hay una mejor manera de hacer este tipo de concatenación, es decir, sin casting explícito en Python?

Author: Levon, 2012-07-19

4 answers

Formato de cadena moderno:

"{} and {}".format("string", 1)
 127
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-19 10:43:47

Sin formato de cadena:

>> print 'Foo',0
Foo 0
 76
Author: Burhan Khalid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-19 10:44:18

Formato de cadena, usando el método new-style .format() (con los valores predeterminados .format () proporciona):

 '{}{}'.format(s, i)

O el más antiguo, pero" todavía se queda", %-formato:

 '%s%d' %(s, i)

En los dos ejemplos anteriores no hay ningún espacio entre los dos elementos concatenados. Si se necesita espacio, simplemente se puede agregar en las cadenas de formato.

Estos proporcionan un lote de control y flexibilidad sobre cómo concatenar elementos, el espacio entre ellos, etc. Para para más detalles sobre las especificaciones de formato , consulte este.

 26
Author: Levon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-19 11:19:48

Python es un lenguaje interesante en el que, si bien generalmente hay una (o dos) formas "obvias" de realizar cualquier tarea dada, la flexibilidad todavía existe.

s = "string"
i = 0

print (s + repr(i))

El fragmento de código anterior está escrito en sintaxis Python3, pero los paréntesis después de la impresión siempre estaban permitidos (opcional) hasta que la versión 3 los hizo obligatorios.

Espero que esto ayude.

Caitlin

 11
Author: CaitlinG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-10 07:49:46