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"))