¿Qué significa %s en una cadena en formato Python?
¿Qué %s
significa 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])
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
%s
marcador 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 %s
token me permite insertar (y potencialmente formatear) una cadena. Observe que el %s
token 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.
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