La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Structures alternative et répétitive Comparaison de données à laide des opérateurs relationnels. Expressions booléennes. Opérateurs logiques : « et » logique,

Présentations similaires


Présentation au sujet: "Structures alternative et répétitive Comparaison de données à laide des opérateurs relationnels. Expressions booléennes. Opérateurs logiques : « et » logique,"— Transcription de la présentation:

1 Structures alternative et répétitive Comparaison de données à laide des opérateurs relationnels. Expressions booléennes. Opérateurs logiques : « et » logique, « ou » logique et la négation. Les blocs. La structure alternative : clause « if » avec ou sans « else ». Les opérateurs conditionnels. La structure répétitive : la clause « while ». Présence de sentinelles. Structures imbriquées.

2 2 Structures de contrôle Jusquà maintenant, les instructions dun programme ont été exécutées les unes à la suite des autres, dans lordre où elles sont écrites. Structure en séquence : exécution séquentielle des opérations Lordre dexécution des instructions des algorithmes nest pas toujours séquentielle et Python offre différentes possibilités pour les décrire : Structure de sélection Structure de répétition : Trois types de structures de sélection (unique, double ou multiple) : structure if : effectue une action si une condition est vraie (True) ou lomet si elle est fausse (False). structure if else : effectue une action si une condition est vraie (True) ou une autre action si elle est fausse (False). structure if elif else : effectue une action parmi plusieurs, selon la valeur de différentes expressions. structures while et for. Choix dune instruction dépendamment dune condition. Répétition dinstructions au moment où une condition est satisfaite.

3 3 Opérateurs relationnels Les structures alternative et répétitive renferment toutes une condition à vérifier. Celle-ci compare deux valeurs à laide dopérateurs relationnels. PythonNotation utiliséeDescription > >= < <= == != > < = supérieur supérieur ou égal inférieur inférieur ou égal égal différent >>> x, y = 2.3, 6.7 >>> x < y True >>> x != y True >>> (x + 4.4) == y True >>> Ex. : Le résultat est une expression booléenne.

4 4 Instruction conditionnelle if Cest une instruction de la forme : >>> if (expression booléenne) :...instruction......instruction... Bloc dinstructions à exécuter si lexpression booléenne est vraie. Autrement, on poursuit lexécution immédiatement après cette suite. Note : Si léditeur ne le fait pas, on doit effectuer une tabulation ou entrer quatre espaces avant dentrer une instruction faisant partie du bloc. Après avoir entré la dernière instruction du bloc, pesez sur la touche une 2 ième fois pour exécuter la portion de code. Les instructions dun bloc doivent être exactement au même niveau. Exemple : >>> indice = 0 >>> if (indice < 10): indice = indice + 2 print "indice = ", indice indice = 2 >>> On peut aussi écrire : >>> if (expression booléenne) : instruction lorsque le bloc renferme une seule instruction.

5 5 Instruction conditionnelle if - else Cest une instruction de la forme : >>> if (expression booléenne) :...instruction......instruction... else :...instruction......instruction... Bloc dinstructions à exécuter si lexpression booléenne est vraie. Ex. I: Bloc dinstructions à exécuter si lexpression booléenne est fausse. >>> centre_x, centre_y, rayon = 1.5, 2.4, 12 >>> coord_x, coord_y = 2.3, 3.1 >>> if (((coord_x - centre_x)**2) + ((coord_y - centre_y)**2) == (rayon * rayon)): print "(", coord_x, ",", coord_y, ")", "est un point du cercle." else: print "Ce n'est pas un point du cercle." Ce n'est pas un point du cercle. >>>

6 6 Instruction conditionnelle if - else >>> note = input("Donnez la note d'un étudiant dans un cours sur 100 : ") Donnez la note d'un étudiant dans un cours sur 100 : 74 >>> if (note < 0): print "*** erreur : la note de l'étudiant ne peut être négative. ***" >>> if (note < 60): print "L'étudiant a un échec." else: print "L'étudiant a réussi. : " L'étudiant a réussi. : >>> print "Sa note est : ", note Sa note est : 74 >>> Ex. II: Ex. III: >>> u, v = 75.3, 23.5 >>> if (u < v): min = u max = v else : min = v max = u >>> print "min = ", min, " max = ", max min = 23.5 max = 75.3 >>>

7 7 Instruction conditionnelle elif (contraction de « else if ») Un bloc dinstructions est exécuté dès quune expression booléenne est vraie. >>> if (expression booléenne 1) :...instruction......instruction... elif (expression booléenne 2) :...instruction......instruction …... elif (expression booléenne n) :...instruction......instruction... else :...instruction......instruction Bloc dinstructions à exécuter si lexpression booléenne 1 est vraie. Bloc dinstructions à exécuter si lexpression booléenne 1 est fausse et lexpression 2 est vraie. Bloc dinstructions à exécuter si lexpression booléenne n est vraie et les précédentes fausses. Bloc dinstructions à exécuter si toutes les expressions booléennes sont fausses.

8 8 Instruction conditionnelle elif (contraction de « else if ») Ex. : >>> a, b, c = 1., 6., 9. >>> if ((b*b - 4 * a * c) == 0): print "racines doubles" elif ((b*b - 4 * a * c) < 0): print "racines imaginaires:" else: print "racines reelles" racines doubles >>>

9 9 Année bissextile 1. Lire une année n. 2. Si n possède comme facteur 400 alors 2.1 Écrire que n est une année bissextile. 2.2 Lalgorithme prend fin. 3. Si n possède comme facteur 100 alors 3.1 Écrire que n nest pas une année bissextile. 3.2 Lalgorithme prend fin. 4. Si n possède comme facteur 4 alors écrire que n est une année bissextile. sinon écrire que n nest pas une année bissextile. 5. Lalgorithme prend fin. Une année est bissextile tous les 400 ans; les siècles ne sont pas bissextiles et une année sur 4 est bissextile

10 10 Année bissextile >>> #Concevoir un programme qui prend en entrée une année, >>> #détermine si oui ou non l'année est bissextile, >>> #et affiche le résultat. >>> >>> annee = input("Entrez l'année que vous désirez : ") Entrez l'année que vous désirez : 1994 >>> if ((annee % 400) == 0): print "oui" elif ((annee % 100) == 0): print "non" elif ((annee % 4) == 0): print "oui" else : print "non" non >>>

11 11 Calcul de la cote dun élève Exemple :CoteNote A 90 B[80, 90) C[70, 80) D[60, 70) E< 60 >>> #Concevoir un programme qui prend en entrée une note, >>> #calcule la cote correspondante et >>> #affiche le résultat. >>> >>> note = input("Entrez la note obtenue : ") Entrez la note obtenue : 73 >>> if (note >= 90): cote = 'A' elif (note >= 80): cote = 'B' elif (note >= 70): cote = 'C' elif (note >= 60): cote = 'D' else : cote = 'E' >>> print "Avec la note ", note, ", vous avez la cote ", cote, "." Avec la note 73, vous avez la cote C.

12 12 Instructions imbriquées Nous pouvons imbriquer les unes dans les autres plusieurs instructions composées. x = if x >= 0.0 : if x == 0.0 : print "Valeur nulle" elif x == : print "Valeur de pi" else : print "Valeur negative" Note : Les limites des instructions et des blocs sont définies par la mise en page. Chaque ligne dinstructions se termine par le caractère de fin de ligne. 1. On peut également terminer une ligne dinstructions par un commentaire lequel commence toujours par le caractère spécial # et se termine par le caractère de fin de ligne. 2. Toutes les lignes dun même bloc dinstructions ou dune instruction composée doivent être indentées exactement de la même manière. Les blocs dinstructions sont toujours associés à une ligne den-tête contenant une instruction (if, elif, else, while, …) suivie dun double point. 3.

13 13 >>> u = 2 >>> v = 3 >>> if (u > 0): if (v < 0): print "valeur négative" else : print "u et v sont positifs." u et v sont positifs. >>> >>> u = 2 >>> v = 3 >>> if (u > 0): if (v < 0): print "valeur négative" else : print "u est négatif" >>> 4.Lindentation nous permet de lever toute ambiguïté avec des instructions imbriquées. Ex. : La clause else correspond à quelle clause if daprès vous ? La réponse est fonction de lindentation.

14 14 Minimum et maximum de 3 entiers >>> A, B, C = input("Saisir 3 entiers quelconques : ") Saisir 3 entiers quelconques : 9, 5, 12 >>> if (A <= B): if(A <= C): min = A if (B >= C): max = B else : max = C else :# C < A <= B min = C max = B else :# B < A if (B <= C): min = B if (A >= C): max = A else : max = C else :# C < B < A min = C max = A >>> print "La plus petite valeur est : ", min La plus petite valeur est : 5 >>> print "La plus grande valeur est : ", max La plus grande valeur est : 12 Note : Dans une structure imbriquée, cest souvent plus rapide que plusieurs structures simples dans le cas dune sortie hâtive. À cette fin, il est préférable de tester les conditions les plus susceptibles dêtre vraies au début.

15 15 Minimum et maximum de 3 entiers – variante >>> A, B, C = input("Saisir 3 entiers quelconques : ") Saisir 3 entiers quelconques : 9, 5, 12 >>> if (A <= B): min = A else : min = B >>> if (min > C): min = C >>> if (A <= B): max = B else : max = A >>> if (max < C): max = C >>> print "La plus petite valeur est : ", min La plus petite valeur est : 5 >>> print "La plus grande valeur est : ", max La plus grande valeur est : 12 >>>

16 16 Écrire un programme qui lit en entrée trois valeurs réelles, A, B et C. Ce programme doit afficher un message indiquant - si nous ne sommes pas en présence dun triangle dont les côtés sont de longueur A, B et C respectivement. max(A, B, C) (A + B + C) / 2 Ce nest pas un triangle. - Autrement, sil sagit dun triangle scalène, sil sagit dun triangle isocèle, sil sagit dun triangle équilatéral, sil sagit dun triangle rectangle, max(A, B, C) 2 = (A 2 + B 2 + C 2 ) / 2 Cest un triangle rectangle. sil sagit dun triangle rectangle isocèle. Identification dun triangle

17 17 Identification dun triangle >>> A, B, C = input("Entrez les 3 paramètres A, B et C : ") Entrez les 3 paramètres A, B et C : 2, 5, 4 >>> #Recherche du maximum. >>> max = A >>> if (max < B):max = B >>> if (max < C):max = C >>> if (max >= (A + B + C) / 2.0):print "Ce n'est pas un triangle." else: sortie = "C'est un triangle " if (max * max == (A*A + B*B + C*C)/2.0):sortie = sortie + "rectangle." if ( A == B): if (B == C):sortie = sortie + "equilatéral." else:sortie = sortie + "isocèle." else: if (A == C):sortie = sortie + "isocèle." elif (B == C):sortie = sortie + "isocèle." else:sortie = sortie + "scalène." >>> print sortie C'est un triangle scalène.

18 18 Opérateurs ternaires >>> u = 3 >>> v = 2 >>> petit = u if (u < v) else v >>> petit 2 >>> Ex. : expression_1 if (expression booléenne) else expression_2 Cela retourne la valeur de expression_1 si lexpression booléenne est vraie; Autrement, la valeur de expression_2 est retournée. Utilisé à outrance, cet opérateur peut nuire à la lisibilité du programme.

19 19 Instructions répétitives – linstruction while i = 0 while (i < 10) : i = i + 1 print i, i * i, i **3 Ex. 1 : u, v, w = 1, 1, 1 while w <= 10 : print v, u, v, w = v, u + v, w + 1 Ex. 2 : La virgule permet dafficher les termes sur la même ligne. Affichage de la suite de Fibonacci. >>> while (expression booléenne) :...instruction......instruction Tant et aussi longtemps que lexpression booléenne est vraie, le bloc dinstructions est exécuté. Si la condition est fausse, on poursuit lexécution après le bloc dinstructions. >>> i = 5 >>> while i : print i i = i Lorsque la valeur numérique dune expression booléenne est non nulle, celle-ci est toujours vraie. Attention : on a une boucle infinie si lexpression booléenne est toujours vraie.

20 20 Ex. 3 : #Plus petite puissance de 2 plus grande que >>> produit = 2 >>> while (produit <= 1000): produit *= 2 >>> print produit 1024 Omettre dinclure dans le corps dune structure while une action qui permette à la condition du while de devenir fausse provoque habituellement une erreur (boucle infinie). Note : Ex. 4 : #Calcul de m n où m et n sont des entiers positifs. # >>> m, n = input("Saisie des valeurs de m et de n : ") Saisie des valeurs de m et de n : 5, 4 >>> i, resultat = 1, 1 >>> while (i <= n): resultat *= m i = i + 1 >>> print resultat 625 >>>

21 Calcul de la racine carrée dun nombre réel positif A = input("Entrez un nombre réel positif : ") Nombre_d_iterations = input("Fournir le nombre d'itérations : ") x = A j = 1 print "La racine carrée de ", A, " est : " while (j <= Nombre_d_iterations): x = (x + A / x) / 2.0 print x j = j + 1 Calculer la racine carrée dun nombre réel positif A par approximations successives en utilisant la relation de récurrence suivante : x 0 = A; x j+1 = (x j + A / x j ) / 2;j = 1, 2,..., n. Les paramètres A et n sont entrés au clavier; de plus, on doit sassurer que A est un nombre réel positif et que n est un entier naturel positif. Toutes les approximations de la racine de A, cest-à-dire toutes les valeurs de x j doivent être affichées.

22 Calcul de la moyenne des notes dune classe >>> #Ce programme saisit le nombre d'élèves d'une classe et la note de chaque >>> #élève; puis, calcule la moyenne des notes obtenues par les élèves et affiche >>> #cette moyenne. >>> >>> Nombre_d_eleves = input("Entrez le nombre d'élèves : ") Entrez le nombre d'élèves : 12 >>> >>> somme_des_notes = 0 >>> i = 1 >>> while (i <= Nombre_d_eleves): print "Entrez la ", i, " ième note : " une_note = input() somme_des_notes += une_note i += 1 Entrez la 1 ième note : 75 Entrez la 2 ième note : 23.9 Etc. Entrez la 12 ième note : 34 >>> print "La moyenne de la classe est : ", somme_des_notes / float(Nombre_d_eleves) La moyenne de la classe est :

23 23 Présence dune sentinelle On ne connaît pas à priori le nombre délèves dans la classe et on ne veut pas exiger de lenseignant dentrer au clavier le nombre délèves dans sa classe. On introduit une valeur sentinelle (-1 par exemple) qui ne peut coïncider avec une note. >>> #Ce programme saisit au clavier la note de chaque élève, entre -1 >>> #lorsque toutes les notes ont été saisies, calcule la moyenne des >>> #notes saisies et affiche le résultat si au moins une note a été saisie; >>> #autrement, on affiche un message d'erreur. >>> >>> sentinelle = -1 >>> Nombre_d_eleves, somme_des_notes = 0, 0.0 >>> >>> une_note = input("Entrez une note ou -1 pour terminer : ") Entrez une note ou -1 pour terminer : 45 >>> while (une_note != sentinelle): somme_des_notes += une_note Nombre_d_eleves += 1 une_note = input("Entrez une note ou -1 pour terminer : ")

24 24 Entrez une note ou -1 pour terminer : 98 Entrez une note ou -1 pour terminer : 35 Entrez une note ou -1 pour terminer : 56 Entrez une note ou -1 pour terminer : 76 Entrez une note ou -1 pour terminer : -1 >>> if (Nombre_d_eleves != 0): print "La moyenne de la classe est : ", \ somme_des_notes / float(Nombre_d_eleves) else :print "On doit entrer au moins une note." La moyenne de la classe est : 62.0 >>>

25 25 Calcul du n ième nombre de Catalan Parenthèses Combien de façons différentes avons-nous de placer des parenthèses autour d'une suite de n+1 lettres, en plaçant à chaque fois 2 lettres (au moins) dans les parenthèses? 2 lettres3 lettres4 lettres5 lettres aba ( bc )( (ab ) c ) d... ( ab ) c(ab ) ( cd ) ( a ( bc ) ) d a ( (bc) d ) a ( b (cd ) ) => Nombres de Catalan Polygone convexe :# de façons de diviser un polygone convexe à n + 2 côtés en triangles. n = 2Le 2 ième nombre de Catalan est 2.

26 26 Calcul du n ième nombre de Catalan Cat(n) = (2n)!, n 0. (n+1)! n! >>> #Ce programme prend en entrée un entier n, calcule le n ième nombre de >>> #Catalan, et affiche le résultat. >>> >>> n = input("Entrez la valeur de n : ") Entrez la valeur de n : 10 >>> i, den = 1, 1 >>> while (i <= n): den *= i i += 1 >>> num = den >>> den = den * den * (n + 1) >>> >>> i = n + 1 >>> while (i <= 2 * n): num *= i i += 1 >>> print "Le ", n, " ième nombre de Catalan est : ", num / den Le 10 ième nombre de Catalan est : 16796

27 27 Cat(n) = (2n)!, n 0. (n+1)! n! Cet algorithme fonctionne-t-il pour nimporte quelle valeur de n ? Lorsque le programme est écrit en Python, lalgorithme fonctionne car il ny a pas de débordements de capacité avec les entiers; par contre, lalgorithme peut être inefficace. En C++, cela ne fonctionne pas pour n 7. >>> print "Les numérateur et dénominateur sont : ", num, den Les numérateur et dénominateur sont : >>> Voici une autre solution : Cat(n) = (1 + n/2) (1 + n/3) … (1 + n/(n-1)) 2

28 28 >>> #Ce programme prend en entrée un entier n, >>> #calcule le n ième nombre de Catalan, >>> #et affiche le résultat. >>> >>> n = input("Entrez la valeur de n : ") Entrez la valeur de n : 10 >>> resultat = 2.0 >>> i = 2 >>> while (i <= n - 1): resultat *= (1.0 + n / float(i)) i += 1 >>> print "Le ", n, " ième nombre de Catalan est : ", resultat Le 10 ième nombre de Catalan est : >>>

29 29 Confusion entre = et == = désigne lopérateur daffectation tandis que == représente lopérateur de comparaison dégalité. >>> i = 1 >>> if (i = 1): print i SyntaxError: invalid syntax >>> >>> x, y, z = 1.0, 1.0, 1.0 >>> y == x * x * z False >>> y = x * x * z >>> print x, y, z >>> 2 interprétations différentes.

30 30 Affichage de la table des produits entre 0 et 10 titre = "X*Y | " i = 0 while (i <= 9): titre = titre + " " titre = titre + str(i) i = i + 1 print titre i = 1 souligne = '-' while (i <= 65): souligne = souligne + '-' i = i + 1 print souligne i = 0 while (i <= 9): ligne = " " + str(i) + " | " j = 0 while (j <= 9): ligne = ligne + " " if (i * j <= 9):ligne = ligne + " " ligne = ligne + str(i * j) j = j + 1 print ligne i = i + 1 X*Y | | | | | | | | | | | Note :Ce programme a été compilé à partir dun fichier.

31 31 Affichage dun cercle centré à lorigine import math rayon = input("Entrez le rayon du cercle : ") y = - rayon while (y <= rayon): x = int(math.sqrt(rayon * rayon - y * y) + 0.5) i = 1 ligne = "" while (i <= rayon - x): ligne = ligne + " " i = i + 1 ligne = ligne + "*" i = 1 - x while (i <= x - 1): ligne = ligne + " " i = i + 1 ligne = ligne + "*" print ligne y = y + 1 ** * * * * * * * * * * * * * * * * * * * * ** Entrez le rayon du cercle : 6

32 32 Calcul dune somme >>> n = input("Entrez le paramètre n : ") Entrez le paramètre n : 5 >>> >>> somme = 0 >>> i = 1 >>> while (i <= n): if ((i % 2) == 0):terme = 2 * i else:terme = i - 1 somme = somme + terme i = i + 1 >>> print "La sommation est : ", somme La sommation est : 18 Il sagit de calculer la somme suivante : n f(i)où f(i) =2i si i est pair i=1i-1 sinon.

33 33 >>> x, y = input("Entrez deux entiers : ") Entrez deux entiers : 23, 9 >>> operateur = " " >>> while (operateur != "+" and operateur != "-" and operateur != "*" \ and operateur != "/" and operateur != "%"): operateur = input("Entrez un opérateur valide : ") Entrez un opérateur valide : "/" >>> if (operateur == "+"):print x, " + ", y, " = ", x + y elif (operateur == "-"):print x, " - ", y, " = ", x - y elif (operateur == "*"):print x, " * ", y, " = ", x * y elif (operateur == "/"):print x, " / ", y, " = ", x / y else:print x, " % ", y, " = ", x % y 23 / 9 = 2 Simulation dune calculatrice simple

34 34 Décompte des lettres représentant les notes dexamen >>> cote = " " >>> acomptage, bcomptage, ccomptage, dcomptage, ecomptage = 0, 0, 0, 0, 0 >>> while (cote != "#"): cote = input("Entrez la cote d'un étudiant (# pour terminer) : ") if (cote == "A" or cote == "a"):acomptage += 1 elif (cote == "B" or cote == "b"):bcomptage += 1 elif (cote == "C" or cote == "c"):ccomptage += 1 elif (cote == "D" or cote == "d"):dcomptage += 1 elif (cote == "E" or cote == "e"):ecomptage += 1 elif (cote == "#"):print "C'est terminé." else:print "Cette cote est invalide." Entrez la cote d'un étudiant (# pour terminer) : "A" Entrez la cote d'un étudiant (# pour terminer) : "e" Entrez la cote d'un étudiant (# pour terminer) : "C" Entrez la cote d'un étudiant (# pour terminer) : "c" Entrez la cote d'un étudiant (# pour terminer) : "F" Cette cote est invalide. Entrez la cote d'un étudiant (# pour terminer) : "B" Entrez la cote d'un étudiant (# pour terminer) : "#" C'est terminé.

35 35 >>> print "Les totaux pour chaque cote sont : " Les totaux pour chaque cote sont : >>> print "A : ", acomptage A : 1 >>> print "B : ", bcomptage B : 1 >>> print "C : ", ccomptage C : 2 >>> print "D : ", dcomptage D : 0 >>> print "E : ", ecomptage E : 1 >>>

36 36 Instruction break break Lorsque exécutée dans une structure while ou for, elle provoque la sortie immédiate de cette structure. Lexécution du programme se poursuit avec la première instruction suivant cette structure. On utilise souvent linstruction break pour sortir dune boucle plus tôt. Exemple : >>> #Ce programme saisit un entier naturel au clavier, >>> #calcule le plus grand diviseur de cet entier et >>> #affiche le résultat. >>> >>> n = input("Entrez un nombre entier naturel : ") Entrez un nombre entier naturel : 27 >>> pgd = n / 2 >>> while (pgd > 0): if (n % pgd == 0): print pgd, " est le plus grand diviseur de ", n break pgd = pgd est le plus grand diviseur de 27

37 37 Instruction continue continue Lorsque exécutée dans une structure while ou for, elle ignore les instructions restantes dans le corps de cette structure et procède à litération suivante de la boucle. while : La condition est évaluée immédiatement après lexécution de linstruction continue. Et ce nest que si la condition est vraie que litération suivante débute. Exemple : >>> while (True): n = input("Entrez un entier naturel : ") if (n <= 0): continue else: pgd = n / 2 while (pgd > 0): if ((n % pgd) == 0): print pgd, " est le plus grand diviseur de ", n break pgd = pgd - 1 break

38 38 Instruction pass pass Si vous écrivez une instruction Python qui attend un sous-bloc de code et que celui-ci est vide, il ne peut être absent. Linstruction pass joue ce rôle. Cette instruction peut être utile durant les stades de développement ou de mise au point. Exemple : >>> while (True): n = input("Entrez un entier naturel : ") if (n <= 0): continue else: pgd = n / 2 while (pgd > 0): if ((n % pgd) == 0): print pgd, " est le plus grand diviseur de ", n break else:pass pgd = pgd - 1 break

39 39 Instruction else else Linstruction else peut être utilisée non seulement avec les instructions conditionnelles mais aussi avec les instructions itératives while ou for. Exemple : >>> while (True): n = input("Entrez un entier naturel : ") if (n <= 0): continue else: pgd = n / 2 while (pgd > 1): if ((n % pgd) == 0): print pgd, " est le plus grand diviseur de ", n break pgd = pgd - 1 else:print n, " est premier." break Dans une boucle, else ne sera exécutée que si celle-ci se termine normale- ment, autrement dit si elle na pas été abandonnée par une clause break.

40 40 Utilisation de variables booléennes Dans les structures alternative et répétitive que nous avons vues, on retrouve des expressions logiques à évaluer dont le résultat est vrai ou faux. Pour stocker la valeur dune condition afin de lutiliser ailleurs, vous devez recourir à une variable booléenne de type bool. Exemple :>>> x = 3.2 >>> V = x < 6.4 >>> if (V):print "La condition est vérifiée." La condition est vérifiée. Attention :Ne pas écrire if (V== True):print "La condition est vérifiée."

41 41 lecture_inachevee = True acomptage, bcomptage, ccomptage, dcomptage, ecomptage = 0, 0, 0, 0, 0 while (lecture_inachevee): cote = input("Entrez la cote d'un étudiant (# pour terminer) : ") if (cote == "A" or cote == "a"): acomptage += 1 elif (cote == "B" or cote == "b"): bcomptage += 1 elif (cote == "C" or cote == "c"): ccomptage += 1 elif (cote == "D" or cote == "d"): dcomptage += 1 elif (cote == "E" or cote == "e"): ecomptage += 1 elif (cote == "#"): print "C'est terminé." lecture_inachevee = False else: print "Cette cote est invalide." print "Les totaux pour chaque cote sont : " print "A : ", acomptage print "B : ", bcomptage print "C : ", ccomptage print "D : ", dcomptage print "E : ", ecomptage Utilisation de variables booléennes

42 42 Utilisation dopérateurs logiques Jusquà présent, nous navons étudié que des conditions simples telles que compteur 1000 ou nombre != sentinelle et nous les avons exprimées à laide des opérateurs relationnels, >=, == et !=. Python offre des opérateurs logiques : and(ET logique) or(OU logique) not(NON logique) pour former des conditions plus complexes par une combinaison de conditions simples. >>> x, y = 2.76, 1.98 >>> n = 2 >>> not (x > y and n == 2) False >>> x >= y or n != 2 True

43 43 Tables de vérité U V U and V U or V false true false vraie true false true Exemple : ou Les instructions pour la déclaration de revenus 1992 disent que vous pouvez vous déclarer comme célibataire si une quelconque des conditions suivantes est vraie : - Vous ne vous êtes jamais marié. - Vous êtes légalement divorcé ou séparé au 31 déc Vous étiez veuf avant le 1 er janv. 92 et ne vous êtes pas remarié. et Vous pouvez employer le statut marié, si toutes les conditions suivantes sont satisfaites : - Votre épouse est décédée en 90 ou en 91 et vous ne vous êtes pas remarié en Vous avez un enfant à charge. - Cet enfant habitait chez vous tout au long de vous avez payé plus de la ½ de ses frais dentretien.

44 44 Année bissextile >>> annee = input("Entrez l'année désirée : ") Entrez l'année désirée : 1954 >>> bissextile = ((annee % 400) == 0) >>> bissextile = bissextile or (((annee % 100) != 0) and ((annee % 4) == 0)) >>> print bissextile False Écrire un programme qui lit 2 entiers A et B et vérifie si les 3 conditions suivantes sont satisfaites simultanément : A > 3 B 1 A = 3 A = 1 B 1 A, B = input("Entrez les valeurs de A et de B : ") C1 = (A > 3) <= (B < 2) C2 = (B > 1) <= (A == 3) C3 = (A == 1) <= (B <= 1) print C1 and C2 and C3


Télécharger ppt "Structures alternative et répétitive Comparaison de données à laide des opérateurs relationnels. Expressions booléennes. Opérateurs logiques : « et » logique,"

Présentations similaires


Annonces Google