una separar saber reemplazar por palabra mayuscula letras letra leer funcion concatenar caracteres caracter python

saber - separar palabra en letras python



ImpresiĆ³n de tuplas con formato de cadenas en Python (10)

Entonces, tengo este problema. Obtuve tupla (1,2,3) que debo imprimir con el formato de cadena. p.ej.

tup = (1,2,3) print "this is a tuple %something" % (tup)

y esto debería imprimir una representación de tupla con corchetes, como

Esta es una tupla (1,2,3)

Pero obtengo TypeError: not all arguments converted during string formatting lugar.

¿Cómo en el mundo puedo hacer esto? Un poco perdido aquí, así que si ustedes podrían señalarme en la dirección correcta :)


Creo que la mejor manera de hacerlo es:

t = (1,2,3) print "This is a tuple: %s" % str(t)

Si está familiarizado con el formato de estilo printf , entonces Python admite su propia versión. En Python, esto se hace usando el operador "%" aplicado a las cadenas (una sobrecarga del operador de módulo), que toma cualquier cadena y le aplica formato de estilo printf.

En nuestro caso, le estamos diciendo que imprima "Esto es una tupla:", y luego agregue una cadena "% s", y para la cadena real, estamos pasando una representación de cadena de la tupla (llamando a str ( t)).

Si no está familiarizado con el formato de estilo de impresión, le recomiendo que aprenda, ya que es muy estándar. La mayoría de los idiomas lo admiten de una forma u otra.


Esto no usa el formato de cadenas, pero deberías poder hacer:

print ''this is a tuple '', (1, 2, 3)

Si realmente quieres usar el formato de cadenas:

print ''this is a tuple %s'' % str((1, 2, 3)) # or print ''this is a tuple %s'' % ((1, 2, 3),)

Tenga en cuenta que esto supone que está utilizando una versión de Python anterior a la 3.0.


Hablar es barato, mostrarle el código:

>>> tup = (10, 20, 30) >>> i = 50 >>> print ''%d %s''%(i,tup) 50 (10, 20, 30) >>> print ''%s''%(tup,) (10, 20, 30) >>>


Intenta esto para obtener una respuesta:

>>>d = (''1'', ''2'') >>> print("Value: %s" %(d)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: not all arguments converted during string formatting

Si ponemos una sola tupla dentro (), se convierte en una tupla:

>>> (d) (''1'', ''2'')

Esto significa que la declaración de impresión anterior se verá así: print ("Valor:% s"% (''1'', ''2'')) que es un error!

Por lo tanto:

>>> (d,) ((''1'', ''2''),) >>>

Arriba se alimentará correctamente a los argumentos de la impresión.


Muchas respuestas dadas arriba eran correctas. La forma correcta de hacerlo es:

>>> thetuple = (1, 2, 3) >>> print "this is a tuple: %s" % (thetuple,) this is a tuple: (1, 2, 3)

Sin embargo, hubo una disputa sobre si el operador de la cadena ''%'' está obsoleto. Como muchos han señalado, definitivamente no es obsoleto, ya que el operador ''%'' String es más fácil de combinar una sentencia String con una lista de datos.

Ejemplo:

>>> tup = (1,2,3) >>> print "First: %d, Second: %d, Third: %d" % tup First: 1, Second: 2, Third: 3

Sin embargo, al usar la función .format() , terminará con una declaración detallada.

Ejemplo:

>>> tup = (1,2,3) >>> print "First: %d, Second: %d, Third: %d" % tup >>> print ''First: {}, Second: {}, Third: {}''.format(1,2,3) >>> print ''First: {0[0]}, Second: {0[1]}, Third: {0[2]}''.format(tup) First: 1, Second: 2, Third: 3 First: 1, Second: 2, Third: 3 First: 1, Second: 2, Third: 3

Además, ''%'' operador de cadena ''%'' también nos sirve para validar el tipo de datos, como %s , %d , %i , mientras que .format () solo admite dos banderas de conversión : ''!s'' y ''!r'' .


Tenga en cuenta que la sintaxis % es obsoleta. Use str.format , que es más simple y más legible:

t = 1,2,3 print ''This is a tuple {0}''.format(t)


Tenga en cuenta que se agregará una coma final si la tupla solo tiene un elemento. p.ej:

t = (1,) print ''this is a tuple {}''.format(t)

y obtendrás:

''this is a tuple (1,)''

en algunos casos, por ejemplo, desea obtener una lista citada para ser utilizada en la cadena de consulta mysql, como

SELECT name FROM students WHERE name IN (''Tom'', ''Jerry'');

necesita considerar eliminar la coma de seguimiento use replace ('',)'', '')'') después de formatear porque es posible que la tupla tenga solo 1 elemento como (''Tom'',), por lo que la coma de seguimiento necesita ser eliminada:

query_string = ''SELECT name FROM students WHERE name IN {}''.format(t).replace('',)'', '')'')

Sugiera si tiene una forma decente de eliminar esta coma en la salida.


>>> thetuple = (1, 2, 3) >>> print "this is a tuple: %s" % (thetuple,) this is a tuple: (1, 2, 3)

Hacer una tupla singleton con la tupla de interés como el único elemento, es decir, la parte (thetuple,) , es la clave aquí.


>>> tup = (1, 2, 3) >>> print "Here it is: %s" % (tup,) Here it is: (1, 2, 3) >>>

Tenga en cuenta que (tup,) es una tupla que contiene una tupla. La tupla externa es el argumento para el operador%. La tupla interna es su contenido, que en realidad está impreso.

(tup) es una expresión entre paréntesis, que cuando se evalúa da como resultado tup .

(tup,) con la coma final es una tupla, que contiene tup como único miembro.


t = (1, 2, 3) # the comma (,) concatenates the strings and adds a space print "this is a tuple", (t) # format is the most flexible way to do string formatting print "this is a tuple {0}".format(t) # classic string formatting # I use it only when working with older Python versions print "this is a tuple %s" % repr(t) print "this is a tuple %s" % str(t)