¿Qué significa %s en una cadena en formato Python?

Resuelto Tyler asked hace 15 años • 8 respuestas

¿Qué %ssignifica en Python? ¿Y qué hace el siguiente fragmento de código?

Por ejemplo...

 if len(sys.argv) < 2:
     sys.exit('Usage: %s database-name' % sys.argv[0])

 if not os.path.exists(sys.argv[1]):
     sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
Tyler avatar Jun 16 '09 02:06 Tyler
Aceptado

Es una sintaxis de formato de cadena (que toma prestada de C).

Consulte "PyFormat" :

Python admite el formato de valores en cadenas. Aunque esto puede incluir expresiones muy complicadas, el uso más básico es insertar valores en una cadena con el %smarcador de posición.

Aquí hay un ejemplo realmente simple:

#Python 2
name = raw_input("who are you? ")
print "hello %s" % (name,)

#Python 3+
name = input("who are you? ")
print("hello %s" % (name,))

El %stoken me permite insertar (y potencialmente formatear) una cadena. Observe que el %stoken se reemplaza por lo que sea que pase a la cadena después del %símbolo. Observe también que aquí también estoy usando una tupla (cuando solo tiene una cadena, usar una tupla es opcional) para ilustrar que se pueden insertar y formatear varias cadenas en una sola declaración.

Andrew Hare avatar Jun 15 '2009 19:06 Andrew Hare

La respuesta de Andrew es buena.

Y sólo para ayudarte un poco más, así es como puedes usar múltiples formatos en una sola cadena:

"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".

Si usa ints en lugar de cadena, use %d en lugar de %s.

"My name is %s and I'm %d" % ('john', 12) #My name is john and I'm 12
sqram avatar Jun 15 '2009 20:06 sqram