1.3.3 Lab - Python Programming Review - FR FR
1.3.3 Lab - Python Programming Review - FR FR
1.3.3 Lab - Python Programming Review - FR FR
Objectifs
Partie 1 : Lancer la DEVASC VM
Partie 2 : Démarrer le code Python et VS
Partie 3 : Examiner les types de données et les variables
Partie 4 : Listes de révision et dictionnaires
Partie 5 : Revue de la fonction de saisie
Partie 6 : Revue des fonctions If, For, et While
Partie 7 : Examiner les méthodes d'accès aux dossiers
Contexte/scénario
Dans ce TP, vous passez en revue les compétences de base en programmation Python, y compris les types
de données, les variables, les listes, les dictionnaires, les entrées utilisateur, les instructions if, les boucles for
et while et l'accès aux fichiers. Ce TP n'est pas destiné à remplacer une expérience de programmation
antérieure et ne couvre pas nécessairement toutes les compétences Python dont vous aurez besoin pour ce
cours. Cependant, ce TP devrait servir de bonne mesure de vos compétences en programmation Python et
vous aider à vous diriger vers l'endroit où vous pourriez avoir besoin de plus d'examen.
Note : Ceci est un rappel. Assurez-vous d'observer les conventions d'indention Python correctes lors de
l'écriture de vos scripts. Si vous avez besoin d'un tutoriel, recherchez « Règles d'indention Python » sur
Internet.
Ressources requises
1 PC avec système d'exploitation de votre choix
Boîte virtuelle ou VMWare
Machine virtuelle DEVASC
Instructions
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 1 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
Python 3.8.2
Remarque : Vous devez le changer en python2 -V si un autre périphérique que vous utilisez exécute la
version 2. Cependant, depuis le 1er janvier 2020, Python 2 n'est plus pris en charge. Par conséquent,
Python 2 n'est pas pris en charge dans ce laboratoire ou ce cours.
Remarque : Au moment de la rédaction de ce labo, Python 3.8.2 était la dernière version. Bien que vous
puissiez mettre à jour votre installation Python avec la commande sudo apt-get install python3, ce
laboratoire et le reste des laboratoires de ce cours sont basés sur Python 3.8.2.
b. Pour démarrer Python, tapez python3. Les trois crochets (>>>) indiquent que vous êtes dans
l'interpréteur interactif de Python.
devasc @labvm ~$ python3
Python 3.8.2 (default, Mar 13 2020, 10:14:16)
[GCC 9.3.0] on linux
Tapez "help", "copyright", "credits" ou "license" pour plus d'informations.
>>>
Entrez quelques opérations mathématiques à l'aide de la syntaxe Python, comme illustré dans les
exemples.
>>> 2+3
5
>>> 10-4
6
>>> 2*4
8
>>> 20/5
4,0
>>> 3**2
9
b. Rappelons que Python utilise l'ordre standard des opérations communément appelé PEMDAS. Les
expressions mathématiques sont évaluées dans l'ordre suivant.
Parenthèses
Exposants
Multiplication et Division
Addition et Soustraction
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 2 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
Essayez de saisir une expression avec un ordre complexe d'opérations dans l'interpréteur interactif.
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 3 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
Étape 1: Utilisez l'interpréteur interactif pour consulter les types de données de base.
En programmation, les types de données sont une classification qui indique à l'interpréteur comment le
programmeur a l'intention d'utiliser les données. Par exemple, l'interpréteur doit savoir si les données saisies
par le programmeur sont un nombre ou une chaîne. Bien qu'il existe plusieurs types de données différents,
nous nous concentrerons uniquement sur les éléments suivants :
Integer - utilisé pour spécifier des nombres entiers (pas de décimales), tels que 1, 2, 3, et ainsi de suite.
Si un entier est entré avec une décimale, l'interpréteur ignore la décimale. Par exemple, 3.75 est
interprété comme 3.
Float - utilisé pour spécifier des nombres qui nécessitent une valeur décimale, telle que 3.14159.
String - toute séquence de caractères tels que des lettres, des chiffres, des symboles ou des signes de
ponctuation.
Boolean - tout type de données ayant une valeur True ou False.
Utilisez la commande type() pour déterminer les types de données de base : int, float, string, boolean
devasc@labvm:~/labs/devnet-src$ python3
Python 3.8.2 (default, Mar 13 2020, 10:14:16)
[GCC 9.3.0] on linux
Tapez "help", "copyright", "credits" ou "license" pour plus d'informations.
>>> type (98)
<class 'int'>
>>> type (98.6)
<class 'float'>
>>> type("Hi!")
<class 'str'>
>>> type(True)
<class 'bool'>
Opérateur Signification
> Supérieur à
< Inférieur à
== Égal à
!= Différent de
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 4 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
Opérateur Signification
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 5 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 6 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
L'exemple suivant montre comment créer une variable de liste appelée hostnames.
>>> hostnames=["R1","R2","R3","S1","S2"]
>>> type(hostnames)
<class 'list'>
>>> len(hostnames)
5
>>> hostnames
['R1', 'R2', 'R3', 'S1', 'S2']
b. Un élément d'une liste peut être référencé et manipulé à l'aide de son index.
o Le premier élément d'une liste est indexé comme zéro, le second est indexé comme un, et ainsi de
suite.
o Le dernier élément peut être référencé avec l'index [-1].
o Remplacez un élément en affectant une nouvelle valeur à l'index.
o Utilisez la commande del pour supprimer un élément d'une liste.
>>> hostnames[0]
'R1'
>>> hostnames[-1]
'S2'
>>> hostnames[0]="RTR1"
>>> hostnames
['RTR1', 'R2', 'R3', 'S1', 'S2']
>>> del hostnames[3]
>>> hostnames
['RTR1', 'R2', 'R3', 'S2']
>>>
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 7 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
>>> ipAddress
{'R1': '10.1.1.1', 'R2': '10.2.2.1', 'R3': '10.3.3.1'}
>>> ipAddress['R1']
'10.1.1.1'
>>> ipAddress["S1"]="10.1.1.10"
>>> ipAddress
{'R1': '10.1.1.1', 'R2': '10.2.2.1', 'R3': '10.3.3.1', 'S1': '10.1.1.10'}
>>>
c. Les valeurs d'une paire clé/valeur peuvent être n'importe quel autre type de données, y compris les listes
et les dictionnaires. Par exemple, si R3 a plus d'une adresse IP, comment représentez-vous cela dans le
dictionnaire ipAddress? Créez une liste pour la valeur de la clé R3.
>>> ipAddress["R3"]=["10.3.3.1","10.3.3.2","10.3.3.3"]
>>> ipAddress
{'S1': '10.1.1.10', 'R2': '10.2.2.1', 'R1': '10.1.1.1', 'R3': ['10.3.3.1', '10.3.3.2',
'10.3.3.3']}
>>>
Étape 1: Créez une variable pour stocker l'entrée utilisateur, puis affichez la valeur.
La plupart des programmes nécessitent un type d'entrée à partir d'une base de données, d'un autre
ordinateur, de clics de souris ou d'une entrée clavier. Pour l'entrée au clavier, utilisez la fonction input () qui
inclut un paramètre facultatif pour fournir une chaîne d'invite. Si la fonction d'entrée est appelée, le
programme s'arrêtera jusqu'à ce que l'utilisateur fournisse l'entrée et frappe la touche Entrée. Attribuez la
fonction input () à une variable qui demande l'entrée à l'utilisateur, puis imprimez la valeur de l'entrée de
l'utilisateur.
>>> firstName = input("What is your first name? ")
What is your first name? User_Name
>>> print("Hello " + firstName +"!")
Hello User_Name!
>>>
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 8 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
devasc@labvm:~/labs/devnet-src$ ^C
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 9 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 10 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
c. Vous pouvez également utiliser une combinaison de la boucle for et de la déclaration if pour créer une
nouvelle liste. Entrez l'exemple suivant pour voir comment utiliser la méthode append () pour créer une
liste appelée switches. Veillez à respecter les exigences d'indention.
>>> switches=[]
>>> for item in devices:
... if "S" in item:
... switches.append(item)
…
>>> switches
['S1', 'S2']
>>>
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 11 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
c. Au lieu d'utiliser while y <= x, nous pouvons modifier la boucle while pour utiliser une vérification
booléenne et casser pour arrêter la boucle lorsque la vérification est évaluée comme false. Modifiez le
script while-loop.py comme indiqué dans ce qui suit :
x=input("Enter a number to count to: ")
x=int (x)
y=1
while True:
print(y)
y=y+1
if y>x:
break
d. Enregistrez et exécutez votre script. Vous devriez obtenir la même sortie que dans l'étape 4b ci-dessus.
Étape 5: Utilisez une boucle while pour vérifier la présence d'une commande de fermeture
utilisateur.
Que faire si nous voulons que le programme s'exécute autant de fois que l'utilisateur le souhaite jusqu'à ce
que l'utilisateur quitte le programme ? Pour ce faire, nous pouvons intégrer le programme dans une boucle
while qui vérifie si l'utilisateur entre une commande quit, telle que q ou quit.
a. Modifiez votre script while-loop.py avec les modifications suivantes :
o Ajoutez une autre boucle while au début du script qui vérifiera une commande quit.
o Ajoutez une fonction if à la boucle while pour vérifier q ou quitter.
Remarque : Assurez-vous d'inclure tous les niveaux d'indention requis.
while True:
x=input("Enter a number to count to: ")
if x == 'q' or x == 'quit':
break
x=int (x)
y=1
while True:
print(y)
y=y+1
if y>x:
break
b. Enregistrez et exécutez votre script. Votre sortie devrait ressembler à la suivante dans laquelle
l'utilisateur a entré deux valeurs différentes avant de quitter le programme.
devasc@labvm:~/labs/devnet-src/python$ python3 while-loop.py
Entrez un nombre à compter : 3
1
2
3
Enter a number to count to: 5
1
2
3
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 12 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
4
5
Enter a number to count to: quit
devasc@labvm:~/labs/devnet-src/python$
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 13 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 14 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
Étape 4: Défi : Créez un script pour permettre à l'utilisateur d'ajouter des périphériques.
Que faire si vous voulez ajouter d'autres périphériques au fichier devices.txt ? Vous pouvez créer un
programme pour ouvrir le fichier en mode Ajout, puis demander à l'utilisateur de fournir le nom des nouveaux
périphériques. Suivez les étapes suivantes pour créer un scénario :
1) Ouvrez un nouveau fichier et enregistrez-le sous file-access-input.py.
2) Pour la fonction open () utilisez le mode a, qui vous permettra d'ajouter un élément au fichier
devices.txt.
3) Dans une boucle while True :, incorporez une commande de fonction input () qui demande à
l'utilisateur le nouveau périphérique.
4) Définissez la valeur de l'entrée de l'utilisateur sur une variable nommée NewiTem.
5) Utilisez une instruction if qui casse la boucle si l'utilisateur tape exit et imprime l'instruction "All
done!".
6) Utilisez la commande file.write(newItem + “\n”) pour ajouter le nouveau périphérique fourni par
l'utilisateur.
7) Fermez le fichier pour le libérer de la mémoire de l'ordinateur.
Exécutez et dépannez votre script jusqu'à ce que vous obteniez une sortie similaire à la suivante.
devasc@labvm:~/labs/devnet-src/python$ python3 file-access-input.py
Enter device name: Cisco 1941 Router
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 15 sur 16 www.netacad.com
Travaux pratiques - Revue de programmation Python
2020 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 16 sur 16 www.netacad.com