Chaînes de caractères

Définition

Il y a différentes manière de créer une chaîne de caractères:

# Single-line string
text = "Hello World"
print(text)

text = 'Hello World'
print(text)

# Multi-line string
text = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(text)

text = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(text)

dedent permet de retirer les indentations en trop

from textwrap import dedent

def fct():
    content = dedent(r"""
    t,F Resp
    s,1/min
    ,,
    01:20,12.85
    """)

Opérateurs

Length

print(len("Hello World")) # 11

Fonctions

Il existe différentes fonctions définies sur les chaînes de caractères.

Format

Il existe différentes manières de formatter une chaîne de caractères:

print('Hello there {} and {}'.format(name1, name2))
print('Hello there %s and %s' %(name1, name2))
print(f'Hello there {name1} and {name2}')
  1. La fonction format

    Paramètres non nommés:

     tu = (12,45,22222,103,6)
     print('{0} {2} {1} {2} {3} {2} {4} {2}'.format(*tu))
     # 12 22222 45 22222 103 22222 6 22222
    
     print("{0:b}".format(9)) # 1001
    

    Paramètres nommés:

     print("{track:03d}. {artist:>8s} - {title:s}.mp3".format(track=1, artist="Bob", title="My song"))
     # 001.      Bob - My song.mp3
    
     print('{chr:0>2s}'.format(chr=str(9))) # 09
    
  2. La syntaxe %

    Paramètres non nommés:

     myvar = "value"
     print("val = %s" % myvar) # val = value
    
     a = 10
     b = 2
     print("%d/%d = %.2f" % (a, b, a/b)) # 10/2 = 5.00
    
     a = 1.0
     print("val = %e" % a)       # 1.000000e+00
     print("val = %f" % a)       # 1.000000
     print("val = %.2f" % a)     # 1.00
     print("val = %s" % a)       # 1.0
     print("val = %d" % a)       # 1
    

    Paramètres nommés:

    ``` python print(‘invalid %(type)s value: %(value)r’ % {‘type’: “name”, ‘value’: 10}) # invalid name value: 10

    ngettext(“%(count)d mois”, “%(count)d mois”, months) % {“count”: months} ```

  3. Les f-strings (depuis Python 3.6)

     origin = "London"
     destination = "Paris"
     print(f"from {origin} to {destination}") # from London to Paris
    

Caractères spéciaux

Pour afficher les caractères spéciaux d’une chaîne de caractères, on utilise la fonction repr

from string import whitespace

print(repr(whitespace)) # ' \t\n\r\x0b\x0c'

Une autre possibilité est de déclarer la chaîne de caractère en mode “raw”:

print('" \t"')  # " 	"
print(r'" \t"') # " \t"

unidecode

unidecode permet de remplacer les caractères accentués par leur équivalent non accentué

  from unidecode import unidecode

  txt = unidecode(txt).lower()

Bytes

Les chaînes de caractères déclarées en Python utilisent le jeu d’encodage du fichier en cours. Mais ce n’est pas toujours souhaitable: on veut parfois utiliser un encodage différent. Dans ce cas, on utilise un “bytes” — une liste d’octets. On peut ensuite convertir les valeurs numériques récupérées dans un autre jeu d’encodage avec encode/decode.

Constantes

from string import ascii_letters

print(ascii_letters)
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
Constante Valeur
ascii_letters abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
ascii_lowercase abcdefghijklmnopqrstuvwxyz
ascii_uppercase ABCDEFGHIJKLMNOPQRSTUVWXYZ
digits 0123456789
hexdigits 0123456789abcdefABCDEF
whitespace \t\n\r\x0b\x0c