Pour les chaînes simples, on peut utiliser les guillemets doubles :
s = "Le mot magique est 'abracadabra'"
ou simples :
s = 'Le mot magique est "abracadabra"'
On peut concatener les chaines constantes avec des espaces :
s = "avec des 'guillemets simples', mais aussi" 'des "guillemets doubles"...'
Pour les chaines qui contiennent des sauts de lignes, on triple les guillemets :
s = """Ceci est une longue chaîne de caractères. En plus, elle contient des guillemets de toutes les formes : " ' « »..."""
On peut aussi remplacer """ par '''.
Le symbole \ est spécial : il permet de transformer le caractère suivant :
\n est un saut de ligne
\t est une tabulation
\b est un « backspace »
\a est un « bip »
\' est un « ' », mais il ne ferme pas la chaine de caractères
\" est un « " », mais il ne ferme pas la chaine de caractères
\\ est un « \ »
Si on veut que le symbole \ reste simplement un \ dans une chaîne, on peut utiliser une chaîne « brute » ("raw string") en préfixant le premier guillemets avec un r :
s = r"Ceci est une chaîne de caractères\nsur une seule ligne"
>>> s = "Ceci est une chaîne de caractères\nsur deux lignes." >>> print(s) >>> s = r"Ceci est une chaîne de caractères\nsur une ligne." >>> print(s) >>> s = "Et ça fait BIP\a BIP\a..." >>> print(s) >>> s = "Zut\b\b\bTabernacle !" >>> print(s) >>> s = "| a\t| bb\t| ccc\t| dddd\t| eeeee\t| ffffff\t|" >>> print(s)
Les objets « chaînes » peuvent accéder à de nombreuses méthodes. Voici quelques exemples, à compléter pendant le cours et à terminer chez vous...
>>> s = "salut, Je m'appelle Bob..."
>>> print(s.lower())
>>> print(s.upper())
>>> print(s.title())
>>> print(s.capitalize())
>>> print(s.swapcase())
>>> s = "abracadabra"
>>> print(s.count("bra"), "et", s.count("a"))
>>> print("abc".isalpha())
>>> print("𐤄س狼".isalpha())
>>> print( ",".isalpha() , "∫".isalpha() )
>>> # voir aussi s.isdigit(), s.isalnum(), s.isnumeric()...
...
>>> t = [ "Ceci" , "est" , "un" , "tableau" , "de mots" , "..." ]
>>> print( " ".join(t) )
>>> print( ",".join(t) )
>>> s = "Où est le centre du monde ?"
>>> print(s.center(50))
>>> s = "Où est le centre de l'univers ?"
>>> print(s.center(50,"⋆")) # avec le second argument explicite
>>> s = "Et la priorité à droite ?"
>>> print(s.rjust(50)) # il y a aussi un second argument, à " " par défaut
>>> s = " \n\t Ceci est une chaîne avec des blancs\n\tun peu partout... \n\n\n"
>>> print(s.strip())
>>> print(s.strip("\n\t Ct,.;?!")) # il y a des variante s.lstrip() et s.rstrip()
>>> print("Abracadabra".replace("bra" , "bro"))
>>> s = """Ici, il y a :
des espaces, des virgules, des lettres
et le reste."""
>>> print(s.split(","))
>>> print(s.split()) # par défaut, utilise tous les caractères blancs ("\n", "\t", " ")
Pour demander une liste de nombres à l'utilisateur :
>>> def demande_nombres():
s = input("Rentrez 5 nombres entiers, séparés par des espaces :\n")
t = s.split()
for i in range(len(t)):
t[i] = int(t[i])
return(t)
On peut créer des chaînes « à trous ». La méthode s.format(...) permet de combler ces trous en donnant la liste des valeurs à mettre dans les trous :
>>> s = "Voici {0}chaîne à {1} trous."
>>> print(s)
>>> print(s.format("une " , 2))
>>> print("a{0}cada{0}".format("bra"))
On peut ainsi insérer des chaînes, des entiers, des flottants ou la plupart des objets de Python...
Pour les nombres entiers, on peut préciser s'il faut ajouter des espaces ou des 0 devant le nombre :
>>> print("Un nombre '{0}', et encore '{1:5}' et encore '{2:05}'.".format(42, 43, 44))
On peut préciser qu'il faut mettre le signe + pour les nombres positifs :
>>> print("Le résultat est '{0:+}'.".format())
On peut indiquer la base (binaire, octal, hexadécimal) pour les nombres entiers, ou la précision pour les nombres flottants, ou si on veut aligner une valeur à gauche / droite / centre d'un trou, etc. Reportez-vous à la documentation de langage pour les détails...
On peut également utiliser des noms explicites pour les champs :
>>> s = "Le numéro d'étudiant de {prenom} {nom} est {no_etu}"
>>> print(s.format(nom = "Tartempion" , prenom = "Lucien" , no_etu = "01020304"))