Que %s
signifie en Python? Et que fait le morceau de code suivant?
Par exemple...
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])
%
opérateur est déconseillé au profit de lastr.format
méthode la plus puissante , voir PEP-3101 .Réponses:
Il s'agit d'une syntaxe de formatage de chaîne (qu'elle emprunte à C).
Veuillez voir "PyFormat" :
Edit: Voici un exemple très simple:
Le
%s
jeton me permet d'insérer (et éventuellement de formater) une chaîne. Notez que le%s
jeton est remplacé par tout ce que je passe à la chaîne après le%
symbole. Notez également que j'utilise également un tuple ici (lorsque vous n'avez qu'une seule chaîne en utilisant un tuple est facultatif) pour illustrer que plusieurs chaînes peuvent être insérées et formatées dans une seule instruction.la source
str.format
méthode la plus puissante .(name,)
et pas seulementname
?La réponse d'Andrew est bonne.
Et juste pour vous aider un peu plus, voici comment utiliser le formatage multiple dans une chaîne
Si vous utilisez des entiers au lieu de chaîne, utilisez% d au lieu de% s.
la source
%s
nombres entiers, il sera simplement converti en une chaîne.print('This number will be padded with 4 zeros: %05d ' % 1)
- cela fonctionnera.print('This number will be padded with 4 zeros: %05s ' % 1)
- ce ne sera pas `La
format
méthode a été introduite dans Python 2.6. Il est plus performant et pas beaucoup plus difficile à utiliser:la source
%s
indique un type de conversion de chaîne lors de l'utilisation des capacités de formatage de chaîne de python. Plus spécifiquement,%s
convertit une valeur spécifiée en une chaîne à l'aide de lastr()
fonction. Comparez cela avec le%r
type de conversion qui utilise larepr()
fonction de conversion de valeur.Jetez un œil à la documentation pour le formatage des chaînes .
la source
%s
et%d
sont des spécificateurs de format ou des espaces réservés pour le formatage des chaînes / décimales / flottants, etc.Spécificateur de format le plus couramment utilisé:
%s
: chaîne%d
: décimales%f
: flotterCode explicite:
la source
En réponse à votre deuxième question: que fait ce code? ...
Il s'agit d'un code de vérification d'erreur assez standard pour un script Python qui accepte les arguments de ligne de commande.
Donc, la première
if
déclaration se traduit par: si vous ne m'avez pas passé d'argument, je vais vous dire comment vous devriez me transmettre un argument à l'avenir, par exemple, vous verrez ceci à l'écran:L'
if
instruction suivante vérifie si le 'nom de la base de données' que vous avez passé au script existe réellement sur le système de fichiers. Sinon, vous recevrez un message comme celui-ci:De la documentation :
la source
Voici un bon exemple en Python3.
la source