Skip to content

Créer une chaîne de caractères en Python (guillemets simples, doubles, triples, str())

En Python, une chaîne (str) est créée en entourant le texte de guillemets simples ‘, de guillemets doubles  » et de guillemets triples ( »’, «  » »). Il est également possible de convertir des objets d’autres types en chaînes avec str().

Cet article décrit le contenu suivant.

  • Guillemets simples:'
  • Double citation:"
  • Différence entre les guillemets simples et les guillemets doubles
    • Les deux valeurs sont égales
    • Les guillemets dans les chaînes sont traités différemment
  • Citations triples :''', """
    • Plusieurs lignes
    • Guillemets simples et doubles
    • Échancrure


  • Convertissez d’autres types en chaînes :str()
    • Convertir des nombres en chaînes
    • Convertir des listes et des dictionnaires en chaînes


Guillemets simples:'

Placez le texte entre guillemets simples ‘ pour en faire une chaîne (str).

s = 'abc'
print(s)
# abc

print(type(s))
# <class 'str'>

Double citation:"

Placez également le texte entre guillemets  » pour en faire une chaîne (str).

s = "abc"
print(s)
# abc

print(type(s))
# <class 'str'>

Différence entre les guillemets simples et les guillemets doubles

Les deux valeurs sont égales

Que vous utilisiez des guillemets simples ‘ ou des guillemets doubles « , les chaînes créées sont égales.

s_sq = 'abc'
s_dq = "abc"

print(s_sq == s_dq)
# True

Les guillemets dans les chaînes sont traités différemment

Dans une chaîne entourée de guillemets simples ‘, les guillemets doubles  » peuvent être utilisés tels quels, mais les guillemets simples ‘ doivent être protégés par une barre oblique inverse et écrits sous la forme \’. Il n’y a aucun problème si vous écrivez \ » pour les guillemets doubles « .

s_sq = 'a\'b"c'
print(s_sq)
# a'b"c

s_sq = 'a\'b\"c'
print(s_sq)
# a'b"c

Dans une chaîne entourée de guillemets doubles « , les guillemets simples ‘ peuvent être utilisés tels quels, mais les guillemets doubles  » doivent être protégés par une barre oblique inverse et écrits sous la forme \ ». Il n’y a aucun problème si vous écrivez \’ pour les guillemets simples ‘.

s_dq = "a'b\"c"
print(s_dq)
# a'b"c

s_dq = "a\'b\"c"
print(s_dq)
# a'b"c

Puisqu’il ne s’agit que d’une différence d’écriture, les valeurs sont égales dans les deux cas.

s_sq = 'a\'b"c'
s_dq = "a'b\"c"

print(s_sq == s_dq)
# True

Citations triples :''', """

Les guillemets triples ( »’, «  » »), c’est-à-dire trois guillemets simples ‘ ou guillemets doubles « , forment également une chaîne (str).

Plusieurs lignes

Une erreur se produit lorsqu’une nouvelle ligne est insérée dans une chaîne entourée de guillemets simples ou doubles. Pour insérer une nouvelle ligne, vous devez utiliser \n.

# s="abc
# xyz"
# SyntaxError: EOL while scanning string literal

s = 'abc\nxyz'
print(s)
# abc
# xyz

Dans une chaîne entre guillemets triples, les sauts de ligne peuvent être écrits tels quels.

s_tq = '''abc
xyz'''

print(s_tq)
# abc
# xyz

print(type(s_tq))
# <class 'str'>

Bien sûr, il n’est pas nécessaire qu’il contienne des sauts de ligne.

s_tq = '''abc'''
print(s_tq)
# abc

Guillemets simples et doubles

Vous pouvez utiliser  » entre trois guillemets simples  »’ et ‘ entre trois guillemets doubles «  » ». Les valeurs sont égales dans les deux cas.

s_tq_sq = '''\'abc\'
"xyz"'''

print(s_tq_sq)
# 'abc'
# "xyz"

s_tq_dq = """'abc'
\"xyz\""""

print(s_tq_dq)
# 'abc'
# "xyz"

print(s_tq_sq == s_tq_dq)
# True

Échancrure

Si des espaces sont insérés au début d’une ligne pour correspondre à l’indentation, la chaîne créée inclut des espaces.

s_tq = '''abc
          xyz'''

print(s_tq)
# abc
#           xyz

Il existe un moyen d’écrire ce qui suit en utilisant un saut de ligne et des parenthèses.

s_multi = ('abc\n'
           'xyz')

print(s_multi)
# abc
# xyz

Voir l’article suivant pour plus de détails.

Convertissez d’autres types en chaînes :str()

Vous pouvez utiliser str() pour convertir des objets d’autres types en chaînes (str).

str() renvoie le résultat de la méthode __str()__ de l’objet cible. Si son type n’a pas de méthode __str()__ définie, il renvoie le résultat de repr().

Voici quelques exemples de types typiques.

Convertir des nombres en chaînes

Les entiers int et les nombres à virgule flottante float peuvent être convertis en chaînes str avec str().

i = 100

s_i = str(i)
print(s_i)
# 100

print(type(s_i))
# <class 'str'>

f = 0.123

s_f = str(f)
print(s_f)
# 0.123

print(type(s_f))
# <class 'str'>

Par exemple, int peut être écrit en hexadécimal, float en exponentiel, etc., mais lorsqu’ils sont convertis en chaîne avec str(), ils sont convertis en chaînes décimales standard.

i = 0xFF
print(i)
# 255

s_i = str(i)
print(s_i)
# 255

f = 1.23e+10
print(f)
# 12300000000.0

s_f = str(f)
print(s_f)
# 12300000000.0

Utilisez la fonction intégrée format() pour la convertir en une chaîne au format souhaité.

s_i_format = format(i, '#X')
print(s_i_format)
# 0XFF

s_f_format = format(f, '.2e')
print(s_f_format)
# 1.23e+10

Si vous souhaitez convertir une chaîne de nombres en valeurs numériques, consultez l’article suivant.

Convertir des listes et des dictionnaires en chaînes

Les listes list et les dictionnaires dict peuvent également être convertis en chaînes str avec str().

l = [0, 1, 2]

s_l = str(l)
print(s_l)
# [0, 1, 2]

print(type(s_l))
# <class 'str'>

d = {'a': 1,
     'b': 2,
     'c': 3}

s_d = str(d)

print(s_d)
# {'a': 1, 'b': 2, 'c': 3}

print(type(s_d))

Vous pouvez utiliser pformat() du module pprint de la bibliothèque standard pour le convertir en une chaîne bien formée.

import pprint

dl = {'a': 1, 'b': 2, 'c': [100, 200, 300]}

s_dl = str(dl)
print(s_dl)
# {'a': 1, 'b': 2, 'c': [100, 200, 300]}

p_dl = pprint.pformat(dl, width=10)
print(p_dl)
# {'a': 1,
#  'b': 2,
#  'c': [100,
#        200,
#        300]}

print(type(p_dl))
# <class 'str'>

Pour plus d’informations sur pprint, consultez l’article suivant.