¿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])
%
operador está en desuso a favor delstr.format
método más potente , consulte PEP-3101 .Respuestas:
Es una sintaxis de formato de cadena (que toma prestada de C).
Por favor vea "PyFormat" :
Editar: Aquí hay un ejemplo realmente simple:
El
%s
token me permite insertar (y potencialmente formatear) una cadena. Observe que el%s
token se reemplaza por lo que pase a la cadena después del%
símbolo. Observe también que también estoy usando una tupla aquí (cuando solo tiene una cadena usando una tupla es opcional) para ilustrar que se pueden insertar y formatear múltiples cadenas en una sola declaración.fuente
str.format
método más potente .(name,)
y no soloname
?La respuesta de Andrew es buena.
Y solo para ayudarlo un poco más, así es como usa el formato múltiple en una cadena
Si está usando ints en lugar de string, use% d en lugar de% s.
fuente
%s
en enteros, solo se convertirá en una cadena.print('This number will be padded with 4 zeros: %05d ' % 1)
Esto funcionará.print('This number will be padded with 4 zeros: %05s ' % 1)
- esto no `El
format
método se introdujo en Python 2.6. Es más capaz y no mucho más difícil de usar:fuente
%s
indica un tipo de conversión de cadena cuando se utilizan las capacidades de formato de cadena de Python. Más específicamente,%s
convierte un valor especificado en una cadena usando lastr()
función. Compare esto con el%r
tipo de conversión que usa larepr()
función para la conversión de valor.Echa un vistazo a los documentos para el formato de cadena .
fuente
%s
y%d
son especificadores de formato o marcadores de posición para formatear cadenas / decimales / flotantes, etc.MÁS común usado Especificador de formato:
%s
: cuerda%d
: decimales%f
: flotadorCódigo autoexplicativo:
fuente
En respuesta a su segunda pregunta: ¿Qué hace este código? ...
Este es un código de comprobación de errores bastante estándar para un script de Python que acepta argumentos de línea de comandos.
Entonces, la primera
if
declaración se traduce en: si no me ha pasado una discusión, le diré cómo debe pasarme una discusión en el futuro, por ejemplo, verá esto en la pantalla:La siguiente
if
declaración verifica si el 'nombre-base de datos' que le pasó al script realmente existe en el sistema de archivos. Si no, recibirá un mensaje como este:De la documentación :
fuente
Aquí hay un buen ejemplo en Python3.
fuente