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.pyet créer un nouveau programme pythonexo5_arg.pyqui permettra de donner la séquence nucléique étudiée en argument du programme. -
Modifier le programme précédent
exo5_arg.pyafin de vérifier la présence du bon nombre d'arguments -
Créer un programme python
exo5_comp.pyqui 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équencesATTGCTAetATTGCTC, le programme doit afficher 6 résidus identiques
- avec les séquencesTAATTGTetATTGCTC, le programme doit afficher 0 résidus identiques -
Modifier le programme précédent
exo5_comp.pyafin d'afficher le pourcentage d'identité (nb résidu identique / nb de résidu total) -
Modifier le programme précédent
exo5_comp.pyafin d'autoriser des séquences de longueurs différentes