Collecter les entrées
Jusqu’à présent, vous vous êtes familiarisé avec diverses constructions du langage de programmation Python. Vous avez également créé quelques programmes. Toutefois, les programmes s’exécutent sur des données, et ces données proviennent de quelque part. Au cours de la présente leçon, vous allez voir plus en détail comment collecter des entrées, à la fois à partir de la ligne de commande et à partir des entrées utilisateur.
Entrée de ligne de commande
Quand vous démarrez un programme à l’aide de python3
, vous lui donnez le nom du fichier à démarrer. Vous pouvez également lui donner un ensemble d’arguments (données auxquelles le programme aura accès au moment de l’exécution). Voici à quoi cela peut ressembler :
python3 backup.py 2023-01-01
Dans le code précédent, la chaîne « 2023-01-01 » peut servir d’instruction donnée au programme backup.py pour qu’il démarre une sauvegarde à partir de cette date. Grâce aux arguments de ligne de commande, vous gagnez en flexibilité. Le programme peut se comporter différemment en fonction de son entrée externe.
Arguments de ligne de commande
Comment ces commandes sont-elles capturées si l’on s’intéresse au codage ? À l’aide du module sys
, vous pouvez récupérer les arguments de ligne de commande et les utiliser dans votre programme. Prenez le code suivant :
import sys
print(sys.argv)
print(sys.argv[0]) # program name
print(sys.argv[1]) # first arg
sys.argv
est un tableau ou une structure de données qui contient de nombreux éléments. La première position, notée 0
dans le tableau, contient le nom du programme. La deuxième position, 1
, contient votre premier argument. Supposons que le programme backup.py contient l’exemple de code et que vous l’exécutez comme suit :
python3 backup.py 2023-01-01
Le programme génère alors le résultat suivant :
['backup.py', '2023-01-01']
backup.py
2023-01-01
Entrée utilisateur
Une autre façon de transmettre des données au programme consiste à ce que l’utilisateur entre les données. Vous pouvez créer du code pour que le programme demande à l’utilisateur d’entrer des informations. Enregistrez les données entrées dans le programme, puis vous interagissez avec elle.
Pour capturer les informations de l’utilisateur, vous allez utiliser la fonction input()
. Voici un exemple :
print("Welcome to the greeter program")
name = input("Enter your name: ")
print("Greetings " + name)
Supposons que le programme input.py contient l’exemple de code et que vous l’exécutez comme suit :
python3 input.py
À l’exécution du programme, vous êtes invité à entrer votre nom, par exemple :
Welcome to the greeter program
Enter your name:
Après avoir entré une valeur et appuyé sur Entrée, le message d’accueil est retourné :
Welcome to the greeter program
Enter your name: Picard
Greetings Picard
Utilisation des nombres
La fonction input()
stocke un résultat sous forme de chaîne. Il est donc possible que le code suivant ne fasse pas ce que vous souhaitez :
print("calculator program")
first_number = input("first number: ")
second_number = input("second number: ")
print(first_number + second_number)
À l’exécution de ce programme, vous êtes invité à entrer le premier nombre, 3
, par exemple :
calculator program
first number: 3
Après avoir appuyé sur Entrée, vous pouvez entrer le deuxième nombre, 4
, par exemple :
calculator program
first number: 3
second number: 4
Après avoir appuyé sur Entrée, vous obtenez ce résultat :
calculator program
first number: 3
second number: 4
34
Vous vouliez sans doute que ce programme vous 7
réponde au lieu de 34
. Que s’est-il passé ?
L’explication est que first_number
et second_number
sont des chaînes. Pour que le calcul fonctionne correctement, vous devez convertir ces chaînes en nombres à l’aide de la fonction int()
. En modifiant la dernière ligne du programme pour qu’elle utilise int()
, vous pouvez résoudre le problème :
print(int(first_number) + int(second_number))
La réexécution du programme avec les mêmes valeurs retourne maintenant 7
comme réponse :
calculator program
first number: 3
second number: 4
7