Aller au contenu

II) Affichage, entrées et fichiers

1) Chaînes de caractères


a) Notion de chaîne de caractères

On peut aussi associer des noms à des séries de caractères que l'on appelle "chaîne de caractères".

ma_chaine = "Bonjour le monde !"

Le contenu de la variable ma_chaine est de type string et donc écrire type(ma_chaine) dans la console donnera un str (abréviation de string en Python).

b) Le signe + et les chaînes de caractères

L'utilisation du signe + ne se limite pas à l'addition. Il est aussi utilisé pour la concaténation.

D'après Wikipédia :

«Concaténation : Terme féminin, du latin cum («avec») et catena(«chaîne, liaison»), désignant l'action de mettre bout à bout au moins deux chaînes. »

Si on considère le programme suivant :

1
2
3
a = "Hello"
b = "World"
mon_expression = a + b
Après l'exécution de ce programme, la variable mon_expression aura pour valeur HelloWorld.

Il est aussi possible de concaténer une chaîne de caractères et une ou plusieurs variables :

1
2
3
ma_chaine_1 = "Bonjour "
ma_chaine_2 = "le "
res = ma_chaine_1 + ma_chaine_2 + "monde!"
Après l'exécution de ce programme, la variable res aura pour valeur Bonjour le monde!.

Les 2 noms ma_chaine_1 et ma_chaine_2 sont associés à 2 chaînes de caractères, nous avons donc bien ici une concaténation.

Que se passe-t-il si nous avons ce cas de figure ?

1
2
3
a = "Nombre de pommes : "
b = 4 
c = a + b
a est de type str alors que b est de type int. Le signe plus représente une addition ou une concaténation ? Ni l'un, ni l'autre, puisque Python vous renverra une erreur : il ne peut pas concaténer un entier et une chaîne de caractère.

La solution : transformer le nombre 4 en caractère 4 à l'aide du mot clé str :

1
2
3
a = "Nombre de pommes : "
b = 4 
c = a + str(b)
Nous avons maintenant une concaténation, car str(4) est de type string.

c) Les fstrings

Autre solution pour faire cohabiter des variables de type int ou float avec des variables de type str : les fstrings (attention les fstrings sont uniquement disponible à partir de Python 3.5).

Il est possible d'écrire :

1
2
3
a = "Nombre de pommes :"
b = 4 
c = f"{a} {b}"
Après l'exécution du programme ci-dessus, la variable c aura pour valeur "Nombre de pommes : 4".

Dans la chaîne de caractère, {a} sera remplacé par la valeur de la variable a, c'est à dire Nombre de pommes :.
De même, {b} sera remplacé par la valeur de b, c'est à dire 4.

Autre exemple d'utilisation des fstrings :

1
2
3
num_train = 4232
dest = "Paris" 
c = f"Le train n°{num_train} à destination de {dest} entre en gare" 

Après l'exécution du programme ci-dessus, la variable c aura pour valeur "Le train n°4232 à destination de Paris entre en gare"

Notez la présence du "f" juste avant le guillemet et des accolades qui encadrent le nom de la variable. Il est nécessaire d'ajouter ce "f" pour avoir une fstring.

2) Les entrées


a) La command input

La commande input est le plus souvent utilisé pour demander à l'utilisateur de choisir une entrée.

nom = input("Quel est ton nom ?")
print(f"Bonjour {nom} !")

b) Une entrée est une chaîne de caractère

Cette entrée est une chaîne de caractères, y compris si on tape un nombre. Il faut alors la convertir au besoin, comme ici avec la commande int.

n = int(input("Choisir un entier :")
print(f"Le carré de {n} vaut {n*n}.")

3) Les fichiers


a) Présentation

Lorsque l'on veut récupérer un texte important, il est préférable de se servir d'un fichier contenant ce texte.

  • Il est recommandé d'utiliser les fichiers avec l'instruction with pour éviter les problèmes de fermetures.
  • On obtient un itérateur ne servant donc qu'une fois.
  • L'itérateur renvoie des lignes. Elles se terminent par "\n".
  • ligne.strip() permet d'enlever les "\n".
  • Il y a plusieurs modes d'accès :
  • "r" : lecture
  • "w" : écriture
  • "a" : ajout

b) Exemple de lecture dans un fichier

Dans l'exemple suivant, on ouvre un fichier "pasteur.txt" en lecture (r) et on peut ensuite l'utiliser ligne par ligne :

1
2
3
with open("Fichiers/pasteur.txt","r",encoding="utf-8") as pasteur : 
    for ligne in pasteur :
        print(ligne)

c) Exemple d'écriture dans un fichier

Dans l'exemple suivant, on va créer et écrire dans un fichier "carres.txt" :

1
2
3
with open("Fichiers/carres.txt","w",encoding="utf-8") as carres :
    for k in range(100) :
        carres.write(f"x = {k:2d} ---> x^2 = {k**2:4d}\n")