Passage d'arguments#
Exemples
note1 = input("Donner une note : ")
note2 = input("Donner une note : ")
note3 = input("Donner une note : ")
moy = (int(note1)+int(note3)+int(note2))/3
print ("La moyenne est ",moy)
On souhaite passer les valeurs note1
, note2
, note3
en argument au programme
Exemples
liste_animaux = ['vache','souris','levure','bacterie']
for nom in listeAnimaux:
print(nom)
On souhaite passer liste_animaux
en argument au programme
Jusqu'à présent, on utilise des données fixes ou demandées à l'utilisateur avec input()
.
On veut passer des arguments/paramètres au programme :
- pour permettre l'exécution du programme avec différentes données sans avoir à modifier le script
- pour éviter l'interaction avec l'utilisateur
Récupérer les valeurs passées en argument au programme :
Utilisation de la liste sys.argv
du module sys (import sys
)
sys.argv[0]
⇒ nom du programmesys.argv[1]...sys.argv[n]
⇒ valeurs des arguments
Exemple pour la commande python exo3.py 15 17 8
:
sys.argv[0]
est égal à "exo3.py"sys.argv[1]
est égal à "15"sys.argv[2]
est égal à "17"sys.argv[3]
est égal à "8"
Vérifier qu'on a le bon nombre d'arguments = taille de sys.argv
Si on a 3 arguments, alors len(sys.argv) == 4
Si on a pas le bon nombre, quitter le programme :
sys.exit()
sys.exit("Message d'erreur")
Pratique 5 : le passage de paramètre#
-
Reprendre le programme
exo4_a.py
et créer un nouveau programme pythonexo5_arg.py
qui permettra de donner la séquence nucléique étudiée en argument du programme. -
Modifier le programme précédent
exo5_arg.py
afin de vérifier la présence du bon nombre d'arguments -
Créer un programme python
exo5_comp.py
qui permet de comparer 2 séquences données en argument et qui affiche le nombre de résidus/nucléotides identiques à la même position entre les 2 séquences (on considère que les 2 séquences sont de même longueur)Exemple :
- avec les séquencesATTGCTA
etATTGCTC
, le programme doit afficher 6 résidus identiques
- avec les séquencesTAATTGT
etATTGCTC
, le programme doit afficher 0 résidus identiques -
Modifier le programme précédent
exo5_comp.py
afin d'afficher le pourcentage d'identité (nb résidu identique / nb de résidu total) -
Modifier le programme précédent
exo5_comp.py
afin d'autoriser des séquences de longueurs différentes