3 votes

Suppression d'un espace supplémentaire avant une apostrophe en python

On m'a demandé d'écrire un programme pour une classe qui utilise deux listes. Une liste contient les noms de 7 personnes (j'ai utilisé les noms des présidents), l'autre contient leurs 7 numéros de téléphone. Le but du programme est que l'utilisateur entre le nom d'un ami et que le programme affiche le numéro de téléphone de cet ami. j'ai comment obtenir le résultat souhaité, mais la sortie affiche un espace supplémentaire que je ne veux pas. La sortie ressemble à ceci :

Votre ami George Washington's numéro de téléphone est : 249-451-2869

Je veux supprimer l'espace entre "Washington" et "'s" pour que cela soit plus naturel. J'ai essayé différentes versions de strip() mais n'ai pas réussi à me débarrasser de cet espace gênant. Voici le code principal du programme :

personName = nameGenerator() #fonction pour permettre à l'utilisateur d'entrer un nom
nameIndex = IsNameInList(personName, Amis) #fonction qui vérifie la saisie de l'utilisateur pour voir si elle est dans la liste des noms
print('Votre ami', Amis[nameIndex], "\ 's numéro de téléphone est :", Phone_Numbers[nameIndex]) #Amis est la liste des noms, Phone_Numbers est la liste des numéros, nameIndex stocke l'index du bon nom et du bon numéro

5voto

ShadowRanger Points 44

print ajoute des espaces entre les arguments par défaut ; passez sep= '' (la chaîne vide) pour désactiver cela. Vous devrez ajouter des espaces manuellement là où vous en avez besoin, mais c'est le changement minimal :

print('Votre ami ', Friends[nameIndex], "\'s numéro de téléphone est : ", Phone_Numbers[nameIndex], sep='')

Alternativement, utilisez simplement une f-string (ou toute autre technique de formatage de chaîne que vous préférez) pour le formater en une seule chaîne avant de l'imprimer :

print(f"Votre ami {Friends[nameIndex]}'s numéro de téléphone est : {Phone_Numbers[nameIndex]}")

2voto

DenverCoder1 Points 1360

Lors de l'impression de variables multiples, Python insère automatiquement des espaces. Vous pouvez utiliser la concaténation de chaînes à la place pour insérer des espaces uniquement où vous le souhaitez.

personName = nameGenerator() # fonction permettant à l'utilisateur d'entrer un nom
nameIndex = IsNameInList(personName, Friends) # fonction qui vérifie l'entrée de l'utilisateur pour voir si elle est dans la liste des noms
print('Votre ami '+Friends[nameIndex]+" a pour numéro de téléphone : "+Phone_Numbers[nameIndex]) # Friends est la liste des noms, Phone_Numbers est la liste des numéros, nameIndex stocke l'indice du nom et du numéro de téléphone approprié

1voto

Nicolas Gervais Points 21795

Vous pouvez simplement changer la façon dont vous concaténez les chaînes. Au lieu de

print(string1, string2, string3)

Vous pouvez les concaténer de cette manière:

print(string1, string2 + string3)

Dans votre cas:

print('Votre ami',Friends[nameIndex] + "\'s numéro de téléphone est:",Phone_Numbers[nameIndex])

Un signe + ne générera pas automatiquement un espace, contrairement à l'utilisation d'une virgule ,.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X