S'il faut des parenthèses, on ne rajoute pas d'espace au début ou à la fin de l'expression située dans les parenthèses.
L'expression dans la parenthèse est prioritaire sur la multiplication. Cette fois, on ne placera donc pas d'espace entre le + mais on en place autour du * :
Et pour les cas plus complexes ? On fait appel à son bon sens !
⚙ 01 (exercice)° Tapez ceci dans la console interactive puis répondre aux questions.
>>> 5 * 10
???>>> 15 - 4
???
Questions
Quelles sont les valeurs utilisées dans la deuxième expression ?
Quelle est l'évaluation produite par la deuxième expression ?
Quel est le symbole de l'opérateur de la deuxième expression ?
Quelle est la signification de ce symbole en Python manifestement (sa sémantique) ?
...CORRECTION 1...
Quelles sont les valeurs utilisées dans la deuxième expression ?
Les valeurs de la première expression sont 15 et 4
Quelle est l'évaluation produite par la deuxième expression ?
"Evaluer" veut dire fournir la valeur attribuée à l'expression. Ici 15-4 donne simplement 11
Quel est le symbole de l'opérateur de la deuxième expression ?
Le seul opérateur de la deuxième expression est -.
Quelle est la signification de ce symbole en Python manifestement (sa sémantique) ?
Cet opérateur permet de demander à Python de réaliser la soustraction de ces deux valeurs.
⚙ 02-A (exercice)° Donner, de tête, la valeur que va fournir Python en évaluant ces expressions. Vérifier ensuite en évaluant dans la console.
>>> 9*9 + 2
?>>> 2 + 9*9
?
...CORRECTION 2A...
Pour comprendre ce calcul, il faut se souvenir que l'opérateur multiplication * est prioritaire sur l'opérateur addition +.
L'ordinateur va ainsi évaluer votre calcul progressivement, étape par étape :
>>> 9*9 + 2
>>> (9*9) + 2
>>> 81 + 2
83
Ca ne change rien pour le second du coup, les priorités sont les mêmes :
>>> 2 + 9*9
>>> 2 + (9*9)
>>> 2 + 81
83
⚙ 02-B (exercice)° Donner, de tête, la valeur que va fournir Python en évaluant ces expressions. Vérifier ensuite en évaluant dans la console.
>>> 12 - 2*0.2
?>>> 3*0.1 + 12
?
...CORRECTION 2B...
Même principe : l'opérateur multiplication * est prioritaire sur l'opérateur soustraction -.
L'ordinateur va ainsi évaluer votre calcul progressivement, étape par étape :
>>> 12 - 2*0.2
>>> 12 - (2*0.2)
>>> 12 - 0.4
11.6
Les priorités sont les mêmes mais comme on commence à gauche par *, mettre les parenthèses ou pas ne changent rien au résultat final sur ce cas particulier :
>>> 3*0.1 + 12
>>> (3*0.1) + 12
>>> 0.3 + 12
12.3
⚙ 03 (exercice)° Evaluer de tête ces deux expressions. Donnent-elles le même résultat ?
>>> 3 + 2*3 + 2
?>>> (3+2) * (3+2)
?
...CORRECTION...
L'ordinateur évalue ainsi la première expression :
Pour la deuxième expression, on respecte juste les parenthèses :
>>> (3+2) * (3+2)
>>> 5 * (3+2)
>>> 5 * 5
25
✎ 04 (rédaction)° Pour chaque cas, poser la division puis expliquer la réponse fournie par Python : reste ou quotient ? Vérifier votre réponse en tapant l'expression dans la console.
A quoi peut bien servir ce que nous venons de voir aujourd'hui, notamment la division euclidienne et le modulo ?
La programmation consiste en partie à faire une traduction : comment faire comprendre à l'interpréteur Python ce qu'on veut faire en utilisant son langage.
2.1 - Trouver le chiffre des centaines ou des dizaines...
Imaginons un ensemble de taxis identifiés par un nombre entre 0000 et 9999. Un témoin sait qu'un suspect a pris un taxi dont la dizaine est 4. Pour identifier informatiquementles taxis potentiels, il faut savoir poser la question sous cette forme à l'interpréteur Python : "Quel est le chiffre de la dizaine du taxi ?"
Imaginons par exemple que vous vouliez trouver le chiffre de la dizaine dans 2004. C'est 0 bien entendu. Ok. Mais comment demander à Python de nous répondre 0 sur ce cas ?
Il n'existe pas d'opérateurs basiques pour faire cela... Il va falloir composer avec ce qu'on sait demander à Python pour l'instant : + - * / // % **...
2.1 - Extraire le chiffre de l'unité, de la dizaine et de la centaine
Description du problème
Entrée du problème : un nombre ENTIER M positif ( exemple d'entrée : M = 1234 )
Nombre M =
1
2
3
4
La case code
1000 millier
100 centaine
10 dizaine
1 unité
Sortie du problème : en fonction du chiffré demandé :
le chiffre de la centaine c (avec l'exemple c = 2 ) ;
le chiffre de la dizaine d (avec l'exemple d = 3 ) ;
le chiffre de l'unité u (avec l'exemple u = 4 ) .
Chiffre de l'unité
Il suffit de faire une division euclidienne par 10 et de récupérer le reste.
Exemples :
>>> 1234 % 10
4>>> 489 % 10
9
Chiffre des dizaines
Il suffit de diviser le nombre par 10. Le chiffre de la dizaine se retrouve alors à la position de l'unité.
Pour récupérer ce chiffre, il suffit donc de faire une deuxième division euclidienne par 10 et de récupérer le reste.
Exemples :
# En deux étapes>>> 1234 // 10
123>>> 123 % 10
3# En une étape avec parenthèses>>> (1234 // 10) % 10
3
Puisque les opérateurs // et % ont la même priorité, on peut donc juste écrire
# En une étape>>> 1234 // 10 % 10
3
Chiffre des centaines
Il suffit de diviser le nombre par 100. Le chiffre de la centaine se retrouve alors à la position de l'unité.
Il suffit de faire une deuxième division euclidienne par 10 et de récupérer le reste.
Exemples :
# En deux étapes>>> 1234 // 100
12>>> 12 % 10
2# En une étape>>> 1234 // 100 % 10
2
⚙ 09 (exercice)° Compléter le code pour que la variable dizaine référence la dizaine de l'année stockée dans la variable a (quelque soit le contenu de a, ne placez pas juste 1 !).
>>> a = 2018
>>> dizaine = a // 10 % 10
>>> dizaine
1
⚙ 10 (exercice)° Compléter le code pour que la variable centaine référence la centaine de l'année stockée dans la variable a (quelque soit le contenu de a).
>>> a = 2018
>>> centaine = a // 100 % 10
>>> centaine
0
✎ 11 (rédaction)° Voici un court programme.
Exécuter d'abord mentalement le programme.
Ecrire ensuite les lignes suivies par l'interpréteur en écrivant clairement les contenus finaux des deux variables test1 et test2.
Finir en exécutant réellement le programme (avec la flèche verte) et en vérifant (via la console interactive) le contenu des deux variables.
1
2
3
4
5
6
7
defcentaine(n):"""Renvoie le chiffre des centaines du nombre reçu"""returnn//100%10test1 = centaine(2470)test2 = centaine(78126)
Vérification via la console :
>>> test1
4>>> test2
1
...CORRECTION...
L1 (déclaration de fonction)
L6 (appel en envoyant 2470) - L1 - L3 (envoi de 4) - L6(réception de 4 et test1 référence donc 4)
L7 (appel en envoyant 78126) - L1 - L3 (envoi de 1) - L7(réception de 1 et test2 référence donc 1) - fin
⚙ 12° On s'intéresse à un jeu de dés qui consiste à lancer 3 dés et à compter les points obtenus d'une certain façon que vous allez devoir découvrir. Pour représenter les valeurs obtenus sur un jet de dés, on utilise un simple nombre composé de 3 chiffres allant de 1 à 6 :
Exemple
426 voudrait ainsi dire que
le dé de gauche a donné 4 : c'est le chiffre de la centaine de 426,
celui du milieu2 : c'est le chiffre de la dizaine de 426 et
celui de droite6 : c'est le chiffre de l'unité de 426.
Questions
Exécuter mentalement le programme.
Ecrire ensuite les lignes suivies par l'interpréteur en écrivant clairement les contenus finaux des deux variables jet1 et jet2.
Exécuter réellement le programme (avec la flèche verte) et vérifier (via la console interactive) le contenu des deux variables.
Expliquer briévement en français comment on compte les points sur ce jeu.
1
2
3
4
5
6
7
8
9
10
11
12
13
defpoints_du_jet(n):"""Calculer les points attribués à un jet de dés"""gauche=n//100%10milieu=n//10%10droite=n%10somme=gauche+milieu+droiteifgauche==droite:somme=somme*2returnsommejet1=points_du_jet(623)jet2=points_du_jet(434)
...CORRECTION...
Question B
L1 (déclaration de fonction)
L12 (appel en envoyant 623) - L1 - L4 (stockage de 6) - L5 (stockage de 2) - L6 (stockage de 3) - L7 (somme référence 11) - L8 (condition fausse) - L10 (envoi de 11) - L12 (réception de 11 et jet1 référence donc 11)
L13 (appel en envoyant 414) - L1 - L4 (stockage de 4) - L5 (stockage de 1) - L6 (stockage de 4) - L7 (somme référence 9) - L8 (condition vrai) - L9 (somme référence 18) - L10 (envoi de 18) - L12 (réception de 18 et jet2 référence donc 18) - fin
Question D
Lorsqu'on reçoit n = GMD (où G, M et D sont des chiffres allant de 1 à 6), on commence, en lignes 4-5-6, par retrouver les valeurs G de gauche (la centaine), M du milieu (la dizaine) et D à droite (l'unité).
Ensuite, en ligne 7, on additionne ces trois chiffres pour un total compris entre 3 (avec 111) et 18 (avec 666).
Enfin, en ligne 8-9, on multiplie cette somme par 2 si le dé de gauche (G) a donné la même valeur que le dé de droite (D)
2.2 Position d'une case sur un plateau
2.2 - Position d'une case sur un plateau de jeu
2.2.A - Description du plateau
Imaginons qu'on dispose d'un plateau de jeu de 4 cases sur 4 cases. Les cases sont numérotées de 0 à 15, comme indiqué ci-dessous :
La ligne du haut porte le numéro 0, la ligne du dessous le numéro 1...
La colonne de gauche porte le numéro 0 puis les autres 1, 2 et 3.
2.2.B - Numéro de ligne
Comment trouver le numéro de ligne d'une case dont on connaît le numéro ?
Il y a 4 cases par ligne.0-1-2-3 pour la ligne 0, 4-5-6-7 pour la ligne 1, 8-9-10-11 pour la ligne 2. ...,
Il suffit de récupérer le quotient de la division euclidienne du numéro de la case par 4.
>>> 3 // 4
0>>> 4 // 4
1>>> 7 // 4
1>>> 8 // 4
2
2.2.C - Numéro de colonne
Comment trouver le numéro de colonne d'une case dont on connaît le numéro ?
Il y a 4 cases par ligne et les cases commencent à 0.
On part d'une case de la première ligne puis on rajoute des multiples de 4 : la colonne 0 est constituée des cases 0-4-8-12, la colonne 1 par 1-5-9-13, la colonne 2 par 2-6-10-14...
Il suffit de récupérer le reste de la division euclidienne du numéro de la case par 4.
>>> 3 % 4
3>>> 4 % 4
0>>> 7 % 4
3>>> 8 % 4
0
⚙ 13 (exercice)° Quel calcul faire pour obtenir le numéro de colonne de la case n°9 ?
...Correction...
9 % 4
⚙ 14 (exercice)° Quel calcul faire pour obtenir le numéro de ligne de la case n°9 ?
...Correction...
9 // 4
✎ 15 (rédaction)° Comment trouver la colonne de la case 117 d'un plateau de jeu comportant 34 cases par ligne ?
✎ 16 (rédaction, difficile)° On considère un plateau comportant 42 cases par ligne. Un monstre est dans la case 1432 et un héros dans la case 1417. Les deux sont-ils adjacents, c'est à dire sur deux cases situées directement l'une à côté de l'autre dans le plateau ?
Vous allez découvrir une première interface graphique construite en utilisant Python et dans la partie suivante nous verrons à quoi peuvent servir les opérateurs quotient et reste sur ce type de programmes.
J'en présente deux au choix :
Pyxel : un module d'interface graphique qui permet de créer "facilement" de petits jeux vidéos de type retro (gros pixels, musiques des années 80...)
Tkinter : un module intégré de base à Python qui permet de créer des interfaces graphiques plus sérieuses.
A vous de choisir.
3 Principe d'un programme pyxel
Un programme utilisant le module pyxel est basé sur une boucle infinie décrite ci-dessous.
Principe de fonctionnement
1 - La fonction init() crée la fenêtre graphique.
2 - La fonction run() active l'alternance infinie ci dessous :
3 - TANT QUE le programme est actif :
On mémorise les actions de l'utilisateur
SI la dernière mise à jour date de 1/30e de seconde ou plus
On active la fonction controler() qui mettra les données à jour en fonction des événements détéctés.
On active la fonction afficher() qui effacera l'écran avec cls() puis générera le nouvel affichage.
Fin du SI
Fin TANT QUE
Au vu de la condition sur l'activation des deux fonctions principales (nommées controler
et afficher ici), on voit qu'il va y avoir 30 images par seconde.
La structure usuelle du code Python pour ce module
1
2
3
4
5
6
7
8
9
10
11
12
13
importpyxeldefcontroler():"""Récupère l'événement et le gère les données (30 fois par seconde)"""...# A modifierdefafficher():"""création des objets (30 fois par seconde)"""pyxel.cls(0)# vide la fenetre...# A modifierpyxel.init(128,128,title="Mon premier jeu")pyxel.run(controler,afficher)
Système d'axes
Le point (0,0) est le bord haut gauche.
L'abscisse va bien vers la gauche.
Par contre, l'ordonnée est orientée vers le bas, attention.
✔ 17 (action, pyxel)° Vérifier si le module pyxel est installé :
>>> import pyxel
Si cela ne fonctionne pas :
Installer la bibliothèque pyxel dans Thonny :
Allez dans l'onglet "Outils"
Cherchez "Gérer les paquets"
Lancez la recherche sur pyxel puis activer l'installation
Attendez que l'installation soit totalement effectuée
Validez l'installation en utilisant le bouton Fermer
Si le module n'est pas installé et que vous ne parvenez pas à le rajouter sur votre ordinateur, pas de panique. Vous pouvez utiliser des solutions en ligne comme pyxel studio mais c'est bien plus lent qu'avec une installation directe.
⚙ 18 (exercice, pyxel)° Une fois le module installé,
placer en mémoire et lancer le programme suivant;
Vérifier que vous parvenez à faire bouger le vaisseau à l'aide des touches flèches gauche et droite du clavier.
L'analyse total du programme sera réalisée dans quelques activités. Pour l'instant, vous n'allez avoir besoin que de survoler quelques unes des lignes.
Lignes 32-35 : qu'envoie-t-on à la fonction calculer_x() lorsqu'on appuie sur la flèche DROITE ?
Ligne 13 : comment se nomment les deux variables qui vont recevoir ces deux valeurs dans calculer_x() lors de l'appel ?
Lignes 13-21 : Pourquoi le vaisseau ne peut-il pas sortir totalement de l'écran ?
Modifier la fonction calculer_x() pour que le vaisseau soit bien bloqué dès que son coin droit touche l'écran à droite : pour l'instant, il sort un peu trop...
importpyxel# Importation des données et fonctions du module pyxel# NE PAS LIRE CETTE PARTIE : elle n'est pas expliquée aujourd'huidata={'x':100,'y':50}# Dictionnaire stockant les données du modèledeflire_colonne():returndata['x']# on renvoie la valeur associée à la clé "y"deflire_ligne():returndata['y']# on renvoie la valeur associée à la clé "y"defecrire_colonne(x):data['x']=x# on modifie la valeur associée à la clé "x"# Définitions des fonctions : PARTIE A LIREdefcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxifx>128:x=127ifx<0:x=0returnxdefcontroler():"""Récupère l'événement et le gère les données (30 fois par seconde)"""ifpyxel.btn(pyxel.KEY_LEFT):# Si il y a un appui sur la flèche gauche x=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,-1)# on calcule la nouvelle valeur de x ecrire_colonne(x)# on enregistre cette valeur dans le modeleifpyxel.btn(pyxel.KEY_RIGHT):# Si il y a un appui sur la flèche droitex=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,1)# on calcule la nouvelle valeur de x ecrire_colonne(x)# on enregistre cette valeur dans le modeledefafficher():"""création des objets (30 fois par seconde)"""pyxel.cls(0)# vide la fenetrex=lire_colonne()# on lit la valeur de x depuis le modèley=lire_ligne()# on lit la valeur de y depuis le modèlepyxel.rect(x,y,8,8,1)# carré 8x8 en couleur 1 et placé en (x,y)# Le programme en lui-mêmeecrire_colonne(100)# on place le vaisseau sur le pixel 100 dans le modèlepyxel.init(128,128,title="Mon premier jeu")pyxel.run(controler,afficher)
...Correction...
On regarde les lignes 32-34
32
33
34
ifpyxel.btn(pyxel.KEY_RIGHT):# Si il y a un appui sur la flèche droitex=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,1)# on calcule la nouvelle valeur de x
Si on appuie sur DROITE, on envoie x et 1.
On ne sort pas de l'écran à cause des lignes 17-20 : si x devient trop grand, on le fixe à 127, s'il devient trop petit, on le fixe à 0 :
17
18
19
22
ifx>128:x=127ifx<0:x=0
Il suffit de remplacer la limite fixée à 127 sur les lignes 19-20 à une valeur plus faible, 120 par exemple.
3.4 Principe d'un programme tkinter
Un programme utilisant le module tkinter est basé sur la boucle infinie décrite ci-dessous :
1 - La fonction Tk() crée la fenêtre graphique.
2 - La méthode bind() permet de faire le lien entre un événement et une fonction de contrôle controler_...() de l'événement
3 - La méthode mainloop() lance la surveillance en boucle des événements
4 - TANT QUE le programme est actif :
SI l'utilisateur appuie sur une touche, on active la fonction controler_...() correspondante qui va
D'abord déterminer comment faire appel aux fonctions maj_...() pour modifier les modèles
Ensuite demander à modifier l'affichage (la vue) en faisant appel à afficher() qui va
faire appel à delete() pour effacer l'écran
faire appel à des fonctions afficher_...() pour afficher des formes à l'écran
Fin du SI
Fin TANT QUE
✔ 17 (action, tkinter)° Vérifier si le module tkinter est installé :
>>> import tkinter
Si cela ne fonctionne pas :
Installer la bibliothèque pyxel dans Thonny :
Allez dans l'onglet "Outils"
Cherchez "Gérer les paquets"
Lancez la recherche sur tkinter puis activer l'installation
Attendez que l'installation soit totalement effectuée
Validez l'installation en utilisant le bouton Fermer
⚙ 18 (exercice, tkinter)° Une fois le module installé,
placer en mémoire et lancer le programme suivant;
Vérifier que vous parvenez à faire bouger le vaisseau à l'aide des touches flèches gauche et droite du clavier.
L'analyse total du programme sera réalisée dans quelques activités. Pour l'instant, vous n'allez avoir besoin que de survoler quelques unes des lignes.
Lignes 32-35 : qu'envoie-t-on à la fonction calculer_x() lorsqu'on appuie sur la flèche DROITE ?
Ligne 14 : comment se nomment les deux variables qui vont recevoir ces deux valeurs dans calculer_x() lors de l'appel ?
Lignes 14-22 : Pourquoi le vaisseau ne peut-il pas sortir totalement de l'écran ?
Modifier la fonction calculer_x() pour que le vaisseau soit bien bloqué dès que son coin droit touche l'écran à droite : pour l'instant, il sort un peu trop...
fromtkinterimportTk# pour créer la fenetre de jeufromtkinterimportCanvas# pour créer la zone de dessin# NE PAS LIRE CETTE PARTIE : elle n'est pas expliquée aujourd'huidata={'x':100,'y':50}# Dictionnaire stockant les données du modèledeflire_colonne():returndata['x']# on renvoie la valeur associée à la clé "y"deflire_ligne():returndata['y']# on renvoie la valeur associée à la clé "y"defecrire_colonne(x):data['x']=x# on modifie la valeur associée à la clé "x"# Définitions des fonctions : PARTIE A LIREdefcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxifx>500:x=499ifx<0:x=0returnxdefcontroler(evenement):"""Fonction qui récupère l'action, modifie le modèle puis appelle la vue"""touche=evenement.keysym# touche utilisée (Left, Right, Up, Left)iftouche=="Left":# Si l'utilisateur appuie sur FLECHE LEFTx=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,-1)# on calcule la nouvelle valeur de x ecrire_colonne(x)# on enregistre cette valeur dans le modeleiftouche=="Right":x=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,1)# on calcule la nouvelle valeur de x ecrire_colonne(x)# on enregistre cette valeur dans le modeleafficher()defafficher():"""Efface puis dessine la nouvelle vue"""plateau.delete("all")# Efface les dessins dans le canvasx=lire_colonne()# on lit la valeur de x depuis le modèley=lire_ligne()# on lit la valeur de y depuis le modèleplateau.create_rectangle(x,y,x+20,y+20,fill="blue",width=0)# Le programme en lui-mêmefenetre=Tk()# Référence de la fenètre graphiquefenetre.title("Mon premier jeu")fenetre.geometry("600x600")plateau=Canvas(fenetre)# Référence de la zone du plateau de jeuplateau.configure(width=500)plateau.configure(height=500)plateau.configure(bg="ivory")plateau.place(x=50,y=50)afficher()# Dessine le vaisseau à la position initialefenetre.bind("<Any-KeyPress>",controler)# Lie le clavier à la fonction fourniefenetre.mainloop()# Lance la surveillance des événements
...Correction...
On regarde les lignes 35-37
35
36
37
iftouche=="Right":x=lire_colonne()# on lit la valeur de x depuis le modèlex=calculer_x(x,1)# on calcule la nouvelle valeur de x
Si on appuie sur DROITE, on envoie x et 1.
On ne sort pas de l'écran à cause des lignes 18-21 : si x devient trop grand, on le fixe à 499, s'il devient trop petit, on le fixe à 0 :
18
19
20
21
ifx>500:x=499ifx<0:x=0
Il suffit de remplacer la limite fixée à 499 sur les lignes 18-19 à une valeur plus faible, 490 par exemple.
4 - Résolution à l'aide d'une simple division euclidienne
✎ 19 (rédaction, pyxel)° Notre fenêtre d'application graphique comporte un écran de 128 sur 128 pixels.
Question
Modifier la fonction calculer_x() pour que le vaisseau apparaisse à droite lorsqu'on va trop loin à gauche et à gauche lorsqu'on va trop loin à droite.
Vous proposerez une solution qui utilisera des if pour modifier x
...avec un if...
11
12
13
14
15
16
17
18
19
20
21
22
23
...
defcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxifx>124:x=0ifx<0:x=121returnx
...
✎ ✌ 20 (rédaction, pyxel)° Modifier la fonction : on ne veut plus de if mais juste une division euclidienne.
Une fois que votre réponse est correcte, faire appel à l'enseignant (✌). On vous donnera alors de commenter les lignes de votre fonction puis certainement de réaliser une fonction qui ne comporte... qu'une ligne.
...avec %...
12
13
14
15
16
17
18
19
20
21
...
defcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxx=x%128returnx
...
✎ 19 (rédaction, tkinter)° Notre fenêtre d'application graphique comporte un écran de 500 sur 500.
Question
Modifier la fonction calculer_x() pour que le vaisseau apparaisse à droite lorsqu'on va trop loin à gauche et à gauche lorsqu'on va trop loin à droite.
Vous proposerez une solution qui utilisera des if pour modifier x
...avec un if...
12
13
14
15
16
17
18
19
20
21
22
23
24
...
defcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxifx>481:x=0ifx<0:x=480returnx
...
✎ ✌ 20 (rédaction, tkinter)° Modifier la fonction : on ne veut plus de if mais juste une division euclidienne.
Une fois que votre réponse est correcte, faire appel à l'enseignant (✌). On vous donnera alors de commenter les lignes de votre fonction puis certainement de réaliser une fonction qui ne comporte... qu'une ligne.
...avec %...
12
13
14
15
16
17
18
19
20
21
...
defcalculer_x(x,dx):"""Renvoie la nouvelle valeur qu'on veut attribuer à x"""x=x+dxx=x%500returnx
...
🏠 Exercices supplémentaires° Réaliser ces exercices en rédigeant correctement vos réponses.
J'ai vu une erreur sur le site, comment la signaler ?
Utilisez le bouton CONTACT en bas de chaque page.
Notez l'URL de l'activité ou son nom et copiez le texte qui pose problème, si besoin avec une description de ce qu'il faut changer si vous pensez que c'est nécessaire.
Merci !
Activité publiée le 28 08 2019
Dernière modification : 15 07 2023
Auteur : ows. h.