Python >> Tutoriel Python >  >> Python

Impression Python sans guillemets

Formulation du problème

Dans le mode interactif de Python, chaque ligne est supposée être une expression qui est évaluée. La valeur de retour est fournie à l'utilisateur. Ainsi, si vous évaluez une expression de chaîne ou appelez une fonction ou une opération qui renvoie une chaîne, la sortie affichera des guillemets autour de la chaîne pour indiquer à l'utilisateur que il s'agit d'un résultat de chaîne :

# Quotes
>>> 'hello world'
'hello world'

Par exemple, si vous évaluez simplement une opération mathématique avec un résultat entier, aucun guillemet ne sera affiché :

>>> 40 + 2
42

Comment pouvez-vous vous débarrasser des guillemets et imprimer une chaîne Python sans les guillemets ?

Solution 1 :imprimer()

En mode interactif, un résultat de chaîne est affiché entouré de guillemets simples pour indiquer que le résultat est une chaîne. Mais si vous passez la chaîne résultante dans un print(...) appel de fonction comme argument, les guillemets disparaissent.

# No Quotes
>>> print('hello world')
hello world

C'est parce que le print() convertit automatiquement chaque argument en sa représentation sous forme de chaîne et l'affiche sur la sortie standard. Étant donné que toutes les sorties d'impression sont des chaînes, il ne fournit pas de valeur pour indiquer le type de chaîne avec les types englobants. Donc, Python les ignore simplement.

N'hésitez pas à regarder la vidéo suivante pour approfondir la fonction :

Solution 2 :string.strip()

Si vous souhaitez supprimer les guillemets englobants d'une chaîne avant de l'imprimer, vous pouvez appeler le string.strip() et passez les guillemets simples et doubles à supprimer du début et de la fin de l'objet chaîne sur lequel il est appelé. Par exemple, l'expression '"hello world"'.strip('"\'') supprime tous les guillemets simples et doubles englobants et donne la chaîne simple 'hello world' .

hi = '"hello world"'

print(hi)
# "hello world"

print(hi.strip('"\''))
# hello world

Notez que le strip() La méthode supprime tous les caractères de l'argument de chaîne fourni. Comme vous devez encadrer l'argument de chaîne entre guillemets doubles ou simples, vous devez échapper le caractère que vous avez utilisé pour encadrer l'argument de chaîne. Cela supprime la signification spéciale (=fermer la chaîne ) à partir du guillemet et indique à Python d'utiliser le caractère guillemet.

Encore une fois, n'hésitez pas à regarder la vidéo suivante pour approfondir la fonction :

Solution 3 :chaîne.replace()

L'approche par force brute pour supprimer toutes les citations d'une chaîne donnée, pas seulement celles qui l'entourent, consiste à utiliser le string.replace() et remplacez chaque occurrence d'un guillemet par la chaîne vide '' . Par exemple, pour supprimer d'abord tous les guillemets doubles, puis tous les guillemets simples de la chaîne s , vous pouvez chaîner la fonction deux fois via s.replace('"', '').replace("'", '') .

>>> s = 'hello """ world \'\'\' !!!'
>>> s
'hello """ world \'\'\' !!!'
>>> s.replace('"', '').replace("'", '')
'hello  world  !!!'

Regardez la vidéo suivante pour approfondir la fonction :

Solution 4 :re.sub()

La fonction regex re.sub(P, R, S) remplace toutes les occurrences du modèle P avec le remplacement R dans la chaîne S . Il renvoie une nouvelle chaîne. Par exemple, si vous appelez re.sub('["\']', '', s) , le résultat sera la nouvelle chaîne avec tous les guillemets simples ou doubles supprimés de la chaîne s .

>>> import re
>>> s = 'hello """ world \'\'\' !!!'
>>> re.sub('["\']', '', s)
'hello  world  !!!'

Le modèle regex '["\']' ouvre une classe de caractères que vous pouvez voir comme un OU relation—il correspondra soit au guillemet double " ou le caractère guillemet simple ' (échappé pour éviter une erreur de syntaxe car le dernier guillemet simple ouvrirait une nouvelle chaîne qui n'est jamais fermée).

Oui, il existe une autre vidéo pour apprendre et améliorer votre compréhension de cette fonction vitale :