Afficher avec Python

Identification

Infoforall

1 - Expressions numériques


Cette activité d'introduction vous présente une première utilisation de Python de façon à afficher des calculs sur la console Python.

Nous n'allons pas réellement faire des choses complexes mais une idée devrait émerger : celle que l'interpréteur Python évalue les ordres qu'on lui transmet en respectant des règles précises.

Et pourtant voici comment les gens pensent que l'informatique fonctionne :

En conséquence, voici comment la plupart des étudiants vont devoir tenter d'apprendre l'informatique lors de leurs études supérieures de sciences, d'économie ou de communication :

Heureusement pour vous, vous êtes en NSI !

Logiciel nécessaire pour l'activité : Python 3 : Thonny, IDLE ou un site sur lequel on peut faire interpréter du Python

Evaluation ✎ : questions 01-05-07-08-10-11-12-13-16-17

Documents de cours : open document ou pdf

Résumé : Version HTML ou imprimable ou ou PDF (couleur ou gris)

1 - Comment programmer avec Python ?

Inutile de télécharger et d'installer Python ou Thonny si vous êtes en salle informatique. Tout est déjà installé.

Si vous ne trouvez pas, pensez à me demander.

Pour programmer en Python, il vous faut une version de Python 3 installée sur votre ordinateur.

Pour cela, plusieurs solutions existent :

  1. Télécharger simplement l'interpréteur Python sur votre ordinateur : vous n'installez que le minimum. Il s'agit du programme qui pourra lire et interpréter les programmes Python que vous allez lui fournir. Il pourra ainsi les traduire en code machine binaire composé de 0 et de 1.
  2. Lien vers Python

  3. Télécharger un Environnement de développement incorporant un interpréteur Python mais également des outils pratiques pour programmer (exécution progressive du programme en mode pas à pas, recherche et modification de texte...).
    Nous utiliserons Thonny sur ce site.
  4. Lien versThonny. Il s'agit d'un logiciel développé par l'Université de Tartu en Estonie.

    Il existe bien d'autres environnements de développement pour Python. La plupart sont très complets mais destinés à des professionnels. Comme certains élèves prennent NSI juste pour comprendre ce que peut faire l'informatique, Thonny est un bon compromis : facile à installer, facile à utiliser, facile à gérer.

    En anglais, Environnement de développement se note IDE : Integrated Development Environment.

  5. Des solutions en ligne, comme Basthon. Pratique pour dépanner mais problématique en cas de panne d'Internet.

Travail à faire chez vous

Pour pouvoir travailler chez vous, le plus simple est de simplement installer Thonny.

Totalement optionnel

Si vraiment, vous voulez voir comment installer la version de base de Python, voici quelques liens qui vous permettront d'installer Python 3 en plus de Thonny. De cette façon, vous pourrez interagir directement avec Python 3 sans passer par l'IDE Thonny.

2 - Thonny

Commençons par voir comment utiliser la console interactive de Thonny. C’est basique en terme d’affichage mais cela ne nécessite aucune gestion des fenêtres. Pour débuter, c’est donc pratique.

Si Thonny n'est pas installé, il est temps d'aller voir l'article sur l'installation de Python et de Thonny dans le menu du haut de page.

Ouvrir Thonny sous Windows :

Rien de particulier : on clique sur l'icône.

Ouvrir Thonny sous Linux :

Si vous êtes en environnement graphique : on clique sur l'icône disponible dans les applications.

Si vous disposez d'un terminal, on peut utiliser la commande suivante :

rv@monordi:~$ thonny &

L'utilisation du & permet simplement de reprendre la main sur le terminal pendant l'exécution de Thonny.

Utiliser la console de Thonny :

2.1 - Distinction entre fenêtre de programmation et console interactive

Une fois Thonny lancé, vous obtiendrez ceci : une application comportant principalement deux zones.

  • La zone programmation en haut.
  • Cette zone permet de créer des programmes qu'on pourra exécuter sur demande autant de fois qu'on le veut, sans retaper l'ensemble du texte.

  • La zone interactive en bas
  • Les trois chevrons >>> indiquent que l'interpréteur est prêt à exécuter une seule fois mais instantanément ce que vous allez lui écrire, en mode interactif. C'est cette partie que nous allons exploiter aujourd'hui. Cette zone est nommée CONSOLE PYTHON en Français, PYTHON SHELL en anglais.

Les questions avec une icone  

Il s'agit juste d'une action à réaliser. Il faut faire l'action et vérifier que cela fonctionne.

Rien à noter sur votre copie.

01-A ✔° Ouvrir Thonny et tester sa console avec ces quelques expressions simples.

>>> 3 + 8 11 >>> 3 3 >>> 3 * 10 30 >>> 3.2 + 0.2 3.4

On remarque donc qu'on obtient le résultat de notre demande sur la console.

01-B ✔° Tester cette autre expression pour constater que l'interpréteur Python signale clairement lorsqu'il ne comprend pas ce qu'on lui demande.

>>> Ca va bien ? File "<pyshell>", line 1 Ca va bien ^ SyntaxError: invalid syntax

01-C ✔° Tester cette autre expression pour constater que parfois l'interpréteur Python signale l'erreur et produit beaucoup de texte. L'information importante se situe sur la dernière ligne pour vous.

>>> 12 / (3 - 3) Traceback (most recent call last): File "/home/rv/apps/thonny/lib/python3.7/site-packages/thonny/backend.py", line 1171, in wrapper result = method(self, *args, **kwargs) File "/home/rv/apps/thonny/lib/python3.7/site-packages/thonny/backend.py", line 1158, in wrapper return method(self, *args, **kwargs) File "/home/rv/apps/thonny/lib/python3.7/site-packages/thonny/backend.py", line 1234, in _execute_prepared_user_code value = eval(expression, global_vars) File "<pyshell>", line 1, in <module> ZeroDivisionError: division by zero
Ne cliquez jamais sur les liens proposés lors d'une erreur

Vous devriez avoir vu que certains textes de réponses sont bleus soulignés. Il s'agit de liens vers les fichiers Python qui ont provoqué l'erreur.

Si vous cliquez dessous, vous allez pouvoir les lire (ça ce n'est pas grave, c'est même le but de Python : tout est visible). Par contre, vous pourriez également les modifier et donc... casser Python sur votre ordinateur.

Moralité : ne cliquez pas sur les fichiers proposés, à moins de faire attention à ne rien modifier et à bien les refermer dès que vous avez fini de lire leur contenu.

01-D ✔° Tester cette dernière expression pour constater que, cette fois, la réponse de Python est... perturbante.

>>> 5,2 + 1,2 (5, 3, 2)
2.2 - Les types d'erreurs

Lorsqu'on fournit un texte à l'interpréteur Python, ce programme va analyser la demande, comme un lecteur humain.

La grosse différence entre un lecteur humain et un interpréteur comme Python ?

L'interpréteur Python va échouer à comprendre votre demande à la moindre faute de "grammaire". En terme d'analogie, c'est comme si en lisant une phrase, vous ne parveniez pas à en comprendre la signification à cause d'une virgule manquante, d'une mauvaise conjugaison ou autre erreur de non respect de la syntaxe du Français.

Plusieurs cas se présentent lorsque l'interpréteur Python lit une demande :

  1. Pas d'erreur : tout se passe bien, la demande est bien formulée et la réponse de l'ordinateur correspond à ce que nous voulions qu'il fasse.
  2. >>> 3.2 + 0.2 3.4
  3. Erreur de syntaxe : notre demande ne correspond pas aux règles de la syntaxe du langage de programmation. L'interpréteur Python ne peut pas exécuter votre demande pour la simple et bonne raison qu'il ne parvient pas à la comprendre !
  4. >>> Ca va bien ? SyntaxError: invalid syntax
  5. Erreur d'exécution : la demande est bien formulée mais provoque une erreur lors de l'exécution. C'est le cas ici : la division est bien formulée mais lorsqu'on demande de réaliser ce calcul, on obtient une division par zéro.
  6. >>> 12 / (3 - 3) ZeroDivisionError: division by zero
  7. Erreur sémantique : tout se "passe bien" en apparence, mais le sens que vous pensez avoir donné à votre demande ne correspond pas au sens que l'interpréteur donne à votre demande. La réponse de l'ordinateur est donc bonne pour lui, mais fausse pour vous. On parle d'erreur sémantique car l'erreur est liée à une mauvaise traduction.
  8. >>> 5,2 + 1,2 (5, 3, 2)

    L'énorme problème de ce type d'erreur ?

    Il est impossible à l'interpréteur Python de signaler que sa réponse ne correspond pas à ce qui se passe dans votre  !

2.3 - Fonctionnement de la console

L’intérêt de la console vient des choix limités d’interaction : pas de couleur, pas de souris...

L'algorithme de fonctionnement du programme gérant la console est facile à comprendre, c'est une boucle infinie :

  1. ATTENTE : il attend que l'utilisateur valide sa ligne de commande avec l'appui sur ENTREE
  2. INTERPRETATION : il tente d'interpréter la ligne qu'il vient de recevoir et de réaliser le travail demandé
  3. AFFICHAGE : il affiche
    • soit le résultat du travail demandé.
    • soit un message d'erreur en rouge
  4. Il revient à l'étape 1

La console a été programmée pour afficher le résultat final obtenu lorsqu'on lui demande d'évaluer quelque chose. C'est un choix de conception, rien d'autre.

Syntaxe

Notez bien qu'on utilise la notation anglo-saxonne pour les nombres à virgule : on note 0.2 et pas 0,2.

Si vous utilisez la virgule, l'interpréteur Python ne va pas comprendre ce que vous avez voulu réellement dire. Il applique juste les règles qu'on lui a imposé de suivre. Nous verrons bientôt à quoi sert la virgule.

3 - Expression comportant un opérateur

3.1 DEFINITIONS : Expression - Valeur - Opérateur

Une expression caractérise une séquence de valeurs associées à des opérateurs.

Que fait Python d'une expression ? Il l'évalue et fournit sa valeur associée.

Cas simple :

>>> 4 + 5 9
  • 4 et 5 sont des valeurs.
  • + est un opérateur.
  • 4 + 5 est une expression.
  • 9 est la valeur calculée à partir de l'expression.

Les symboles Python des opérateurs classiques sur les nombres sont représentés de cette façon en Python :

  • + symbolise l'addition
  • - symbolise la soustraction
  • * symbolise la multiplication
  • / symbolise la division
  • ** symbolise la puissance
3.2 DEFINITION : Evaluation et priorité d'évaluation

Lorsque l'interpréteur rencontre une expression, il l'évalue et obtient donc une nouvelle valeur.

Cette action sur l'expression se nomme une évaluation .

L'évaluation est séquentielle et progressive sur une ligne : l'interpréteur Python n'évalue pas la ligne d'un seul bloc, il effectue certaines opérations en priorité.

Si vous voulez communiquer avec l'interpréteur, il faut donc savoir comment il fonctionne.

Voici les règles de priorité que respecte l'interpréteur :

  1. Si l'expression comporte des parenthèses (...), Python commence par cette opération.
  2. Sinon, l'opérateur prioritaire est l'opérateur de puissance **.
  3. Ensuite, on passe à l'opérateur de multiplication * ou de division /.
  4. Enfin, l'opérateur d'addition + ou de soustraction - sont les opérateurs les moins prioritaires.
  5. En cas d'égalité de priorité, on commence par l'opérateur le plus à gauche d'abord.

Exemple

10 + (5 + 3) * 2

10 + (5 + 3) * 2

10 + 8 * 2

10 + 8 * 2

10 + 8 * 2

10 + 16

10 + 14

10 + 16

26

Pour vérifier, il suffit de demander poliment à Python de faire le calcul :

>>> 10 + (5 + 3) * 2 26

Exemple 2

5 + 10 / 2 * 3

5 + 10 / 2 * 3

5 + 5.0 * 3

5 + 5.0 * 3

5 + 5.0 * 3

5 + 15.0

5 + 15.0

5 + 15.0

20.0

3.3 Quotient et reste d'une division euclidienne avec // et %

On désigne parfois ces divisions euclidiennes sous le terme de "divisions entières".

Rappels sur les divisions euclidiennes

Il s'agit de diviser un nombre a par un nombre b, en trouvant :

  • Le quotient, c'est à dire le nombre de paquets égaux qu'on peut faire en divisant a par b.
  • Le reste, c'est à dire le nombre d'éléments restants après création des paquets.
  • Exemple avec la division euclidienne de 10 par 5 :
  •      10 │ 5
            ├────
    reste 02
    

    Le quotient vaut 2 et le reste vaut 0.

    On remarquera qu'on peut également le justifier en écrivant 10 = 2*5 + 0

Opérateur Python //

En Python, la syntaxe permettant d'obtenir le quotient de la division entière de 10 par 5 est 10 // 5.

Cela revient à demander à Python "Python, quel est le quotient de la division euclidienne de 10 par 5 ?"

>>> 10 // 5 2

Opérateur Python %

En Python, la syntaxe permettant d'obtenir le reste de la division entière de 10 par 5 est 10 % 5.

Cela revient à demander à Python "Python, quel est le reste de la division euclidienne de 10 par 5 ?"

>>> 10 % 5 0

Quelques autres exemples

  1. Division entière de 11 par 5
  2. Voici la division posée :

         11 │ 5
            ├────
    reste 12
    

    On peut également le justifier en écrivant 11 = 2*5 + 1

    Et voici pour Python :

    >>> 11 // 5 2 >>> 11 % 5 1
  3. Division entière de 13 par 5
  4. Voici la division posée :

         13 │ 5
            ├────
    reste 32
    

    On peut également le justifier en écrivant 13 = 2*5 + 3

    Et voici pour Python :

    >>> 13 // 5 2 >>> 13 % 5 3
  5. Division entière de 14 par 3
  6. Voici la division posée :

         14 │ 3
            ├────
    reste 24
    

    On peut également le justifier en écrivant 14 = 4*3 + 2

    Et voici pour Python :

    >>> 14 // 3 4 >>> 14 % 3 2

Priorité

L'opérateur // et l'opérateur % possèdent la même priorité que la multiplication ou la division.

Lorsque les deux sont présents, c'est donc l'ordre d'apparition qui tient lui de priorité. Attention, ils ne sont pas interchangeables.

>>> 1407 % 5 // 2 1 >>> 1407 // 2 % 5 3

Pourquoi ? Voici la décomposition des deux évaluations précédentes.

Déroulé de la première évaluation : 1407 % 5 // 2

1407 % 5 // 2

2 // 2

1

Déroulé de la première évaluation : 1407 // 2 % 5

1407 // 2 % 5

703 % 5

3

Vous avez vu plusieurs lignes de calcul possèdant des espacements. Ceux-ci ne sont pas positionnés au hasard :

Ecrire un code clair 1 : les espaces dans les expressions

Lorsqu'une expression ne contient que des opérateurs ayant la même priorité, on laisse un espace entre les différentes termes :

Expressions correctement écrites : >>> 25 % 10 >>> 25 + 10 - 5 Expressions posant des problèmes de lecture : >>> 25%10 >>> 25+10+5

Lorsqu'une expression ne contient que des opérateurs ayant des priorités différentes, on ne place pas d'espace sur les opérateurs prioritaires :

Expressions correctement écrites : >>> 10 + 25*5 >>> 25/10 - 5 Expressions posant des problèmes de lecture : >>> 10+25*5 >>> 10 + 25 * 5 >>> 25/10-5 >>> 25 / 10 - 5

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 * :

Expressions correctement écrites : >>>(25 + 5) * 5 >>> (4 + 5) * (12 + 55) Expressions posant des problèmes de lecture : >>> (25+5)*5 >>> ( 25 + 5 ) * 5 >>> ( 25+5 ) * 5

Et pour les cas plus complexes ? On fait appel à son bon sens !

Les question sans icone particulière :

C'est une question "normale". Que faire ?

  • Vous tentez de faire la question
  • Si vous bloquez (trop longtemps), vous regardez la réponse en cliquant dessus.
  • Correction ?

    ...CORRECTION...

    Si ce n'est toujours pas clair malgré la réponse, vous m'appelez.

02° Tapez ceci dans la console interactive.

>>> 5 * 10 ??? >>> 15 - 4 ???

Questions :

  • Quelles sont les expressions ?
  • Quelles sont les valeurs de la première expression ?
  • Que donne l'évaluation de la deuxième expression ?
  • Quel est le symbole de l'opérateur de la deuxième expression  quel est son sens (son signification, sa sémantique) ?

...CORRECTION 1-2...

  • Quelles sont les expressions ?
  • Ici, ce sont simplement deux calculs : 5 * 10 et 15 - 4

  • Quelles sont les valeurs de la première expression ?
  • Les valeurs de la première expression sont 5 et 10

  • Que donne l'évaluation de la deuxième expression ?
  • "Evaluer" veut dire fournir la valeur attribuée à l'expression. Ici 15-4 donne simplement 9

  • Quel est le symbole de l'opérateur de la deuxième expression  quel est son sens ?
  • Le seul opérateur de la deuxième expression est - dont le sens est la soustraction.

03° 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 ? >>> 12 - 2*0.2 ? >>> 3*0.1 + 12 ?

...CORRECTION 1-2...

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

...CORRECTION 3-4...

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

Ca ne change rien pour le second du coup, les priorités sont les mêmes :

>>> 3*0.1 + 12 >>> (3*0.1) + 12 >>> 0.3 + 12 12.3

04° 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 :

>>> 3 + 2*3 + 2 >>> 3 + (2*3) + 2 >>> 3 + 6 + 2 >>> (3 + 6) + 2 >>> 9 + 2 11

Pour la deuxième expression, on respecte juste les parenthèses :

>>> (3+2) * (3+2) >>> 5 * (3+2) >>> 5 * 5 25

Les question avec l'icône stylo ✎ 

Ces questions seront notées lors de l'évaluation. Il faut donc mettre votre réponse sur papier, soit sur votre feuille papier, soit sur votre copie numérique.

✎ 05° Expliquer clairement les réponses fournies par Python sur ces calculs. Vérifier votre réponse en tapant l'expression dans la console.

>>> 12 // 5 ? >>> 12 % 5 ? >>> 12 // 9 ? >>> 12 % 9 ? >>> 7 // 2 ? >>> 7 % 2 ? >>> 380 % 360 ?

06° Vous voulez acheter des paquets de gateaux. Un paquet coûte 12 euros. Vous avez 100 euros sur vous :

  1. Ecrire le calcul à demander à l'interpréteur pour savoir combien de paquets vous pouvez acheter avec 100 euros.
  2. Ecrire le calcul à demander à l'interpréteur pour savoir combien d'euros il va vous rester après cet achat.

...Correction...

On trouve le résultat avec deux lignes.

"Python, combien de paquets puis-je acheté ?"

>>> 100 // 12 8

"Python, combien va-il me rester ?"

>>> 100 % 12 4

On peut donc acheter 8 paquets et il nous restera 4 euros.

Cela revient à dire que 100 = 8*12 + 4.

✎ 07° Taper les expressions suivantes qui illustrent l'opérateur ** : la puissance.

>>> 3**2 9 >>> 4**2 16 >>> 5**2 25 >>> 10**2 100 >>> 10**3 1000

Question :

Proposer 5 évaluations ne comportant que des multiplications pour calculer ces puissances : 9, 16, 25, 100 et 1000.

✎ 08° Noter sur votre copie les résultats des puissances de 2 successives suivantes :

>>> 2**2 ? >>> 2**3 ? >>> 2**4 ? >>> 2**5 ? >>> 2**6 ? >>> 2**7 ?

Question supplémentaire :

Proposer une autre façon de calculer 27 qui n'utilise que des multiplications.

09° On considère l'expression suivante : 5**2*5**2.

Question

  1. Réaliser sur papier l'évaluation de cette expression en expliquant clairement les étapes successives.
  2. Vérifier votre résultat sur la console Python.
  3. Ecrire l'expression de façon plus claire en utilisant des espaces de façon pertinente.

...correction...

>>> 5**2*5**2 >>> (5**2)*(5**2) >>> 25*25 625

La puissance étant prioritaire, nous aurions dû écrire l'expression sous cette forme plus claire :

>>> 5**2 * 5**2

On notera bien que 2**5 veut dire 25, ce qui correspond à 2*2*2*2*2 et pas 2*5.

De la même façon,

  • 10**1 veut dire 101, ce qui correspond à 10
  • 10**2 veut dire 102, ce qui correspond à 10*10
  • 10**3 veut dire 103, ce qui correspond à 10*10*10
  • 10**4 veut dire 104, ce qui correspond à 10*10*10*10

4 - Application à la résolution de problèmes

A quoi peut bien servir ce que nous venons de voir aujourd'hui, notamment la division euclidienne et le modulo ?

Vous allez voir cette année que la difficulté de la programmation vient du fait qu'on ne dispose que d'un nombre limité de façon de communiquer avec l'ordinateur, alors qu'un nombre presque illimité de questions se posent à nous !

4.1 - Détection de décennie

Imaginons un ensemble de personnes dont on connait les années de naissance et que sont toutes nées en 2000 et plus. Nous voudrions parvenir à déterminer informatiquement si une personne est bien nés entre 2000 et 2009. Comment faire ? Il faudra savoir comment poser la question suivante à l'interpréteur Python : "Quel est le chiffre de la dizaine de l'année de naissance de cette personne ?"

Imaginons par exemple que vous vouliez trouver le chiffre de la centaine dans 2004. C'est 0 bien entendu. Ok. Mais comment demander à Python de nous répondre 0 sur ce cas ?

Comment faire pour que l'interpréteur renvoie l'unité, la dizaine ou la centaine d'un nombre ? 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 : + - * / // % **...

Extraire le chiffre de l'unité, de la dizaine et de la centaine
  • Entrée du problème : un nombre ENTIER positif
  • Exemple d'entrée :  1234 

  • Sortie du problème : un ensemble de chiffres représentant
    • le chiffre de l'unité u,
    • le chiffre de la dizaine d et
    • le chiffre de la centaine c du nombre d'entrée.

    Sorties attendues pour l'entrée précédente :

    •  u = 4  pour le chiffre de l'unité
    •  d = 3  pour le chiffre de la dizaine
    •  c = 2  pour le chiffre de la centaine
Nombre M = 1 2 3 4
La case code 1000 100 10 1
On obtient donc 1000 200 30 4

Unité

Il suffit de faire une division euclidienne par 10 et de récupérer le reste.

Exemples :

>>> 1234 % 10 4 >>> 489 % 10 9

Dizaine

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 >>> 1234 // 10 % 10 3

Centaine

Il suffit de diviser le nombre par 100. Le chiffre de la centaine 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 // 100 12 >>> 12 % 10 2 # En une étape >>> 1234 // 100 % 10 2

✎ 10° Expliquer clairement ce qu'on doit taper dans la console pour récupérer la dizaine (0) de l'année 2008.

>>> 2008...

✎ 11° Expliquer clairement ce qu'on doit taper dans la console pour récupérer la dizaine (8) de l'année 1987.

>>> 1987...

✎ 12° Expliquer clairement ce qu'on doit taper dans la console pour récupérer la centaine (9) de l'année 1987.

>>> 1987...

✎ 13° Expliquer clairement ce qu'on doit taper dans la console pour récupérer le chiffre des milliers (1) de l'année 1987.

>>> 1987...

Voici pour une première utilisation possible de ces deux opérateurs : récupérer certains chiffres bien précis.

4.2 Position d'une case sur un plateau

Position d'une case sur un plateau de jeu

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.

Numéro de ligne

Comment trouver le numéro de ligne d'une case dont on connaît le numéro ?

Assez facile : il y a 4 cases par ligne et les cases commencent à 0.

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

Numéro de colonne

Comment trouver le numéro de colonne d'une case dont on connaît le numéro ?

Assez facile aussi : il y a 4 cases par ligne et les cases commencent à 0.

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

14° Quel calcul faire pour obtenir le numéro de colonne de la case n°9 ?

  1. 9 % 4
  2. 9 % 3
  3. 9 // 3
  4. 9 // 4

...Correction...

Réponse A : 9 % 4

15° Quel calcul faire pour obtenir le numéro de ligne de la case n°9 ?

  1. 9 % 4
  2. 9 % 3
  3. 9 // 3
  4. 9 // 4

...Correction...

Réponse D : 9 // 4

✎ 16° Comment trouver la colonne de la case 117 d'un plateau de jeu comportant 34 cases par ligne ?

✎ 17° On considère un plateau comportant 42 cases par ligne. La case 1432 et la case 1417 sont-elles adjacentes ?

5 - Conclusion temporaire

Nous venons de voir que l'interpréteur Python analyse chacune de vos demandes en la traitant progressivement par petit bout en fonction des priorités des opérateurs.

L'interpréteur n'est qu'une machine qui applique des consignes transmises via un langage fermé et définie à l'avance. Ces règles forment ce qu'on nomme la syntaxe.

Conclusion 1 - Syntaxe et sémantique
  • L'interpréteur est un programme qui reçoit une demande sous forme d'une ligne à analyser
  • L'interpréteur n'a AUCUNE MARGE DE MANOEUVRE pour comprendre une demande mal formulée : si la demande ne respecte pas scrupuleusement la syntaxe de langage choisi, l'interpréteur ne pourra pas la comprendre (c'est l'erreur de syntaxe : la demande est mal formulée)
  • Il est possible que la syntaxe soit bonne mais que vous ayez mal compris la façon dont l'interpréteur va la comprendre : c'est votre faute, pas celle de l'interpréteur (c'est l'erreur de sémantique : la demande n'est pas appliquée avec le sens que vous pensiez lui donner).

Nous avons vu comment programmer avec 3 outils (Python directement, l'IDE Thonny ou l'interface Web Basthon)... Reste à voir pourquoi programmer !

Conclusion 2 - Les 4 piliers de l'informatique

Globalement, on pourra dire que l'informatique est une science qui consiste à résoudre les problèmes. Mais c'est une science assez difficile à appréhender car elle est composée de plusieurs piliers, plus ou moins dépendants.

  • 1er pilier : l'information ou les données. Pour travailler sur un problème, il faut déjà parvenir à stocker les informations liées à ce problème.
  • L'informatique consiste donc en partie à savoir encoder les informations du monde réel de façon à pouvoir les traiter efficacement.

  • 2e pilier : l'algorithmique. C'est la science de la résolution de problèmes en utilisant
    • une méthode qui répond toujours une bonne réponse
    • une méthode qui répond rapidement
    • une méthode qui serait applicable par une machine

    L'informatique consiste donc en partie à savoir résoudre les problèmes en optimisant la solution.

  • 3e pilier : la machine justement. Les deux premiers piliers permettent de réfléchir à la notion d'information et d'algorithme, mais il reste bien entendu falloir appliquer ces méthodes sur des machines.
  • L'informatique consiste donc en partie à concevoir de ces machines et à déterminer les tâches élémentaires basiques qu'elles doivent réaliser.

  • 4e pilier : le langage. L'informatique traite beaucoup de la notion de langage formel, à savoir :
    • la syntaxe (comment écrire).
    • la sémantique (que veut dire ce qu'on a écrit en respectant la syntaxe)
    • comment faire disparaître toute ambiguïté lorsqu'on utilise ce langage ?
    • comment décrire un objet en utilisant un langage ?
    • comment décrire une action en utilisant un langage ?
    • comment décrire une démonstration en utilisant un langage ?
    • comment formule une requête en utilisant un langage ?

Chacun de ces piliers fait partie de l'informatique, tout en ayant des liens avec d'autres disciplines que l'informatique (mathématiques, physique, linguistique...).

Et c'est la programmation qui va permettre de relier ces 4 notions entre elles.

Les questions avec l'icône main ✌ :

La question est notée directement en classe. Pensez à faire appel à moi, sinon elle sera non validée.

Pas de question de ce type de cette activité.

6 - FAQ (Frequently Asked Questions)

Cette partie contiendra à chaque fois des questions d'élèves qu'on retrouve d'année en année mais dont les réponses nécessitent des notions qui ne sont pas au programme ou qui seront détaillées plus tard. Pratique et intéressant mais absolument pas indispensable du coup.

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 !

Voici pour ce premier contact avec la console de Python.

Pour la plupart des activités, vous trouverez un récapitulatif des notions à connaître. Il ne s'agit d'un ensemble de questions auxquelles il faudra savoir répondre si vous voulez une bonne note.

Le résumé de l'activité regroupe lui l'ensemble des points de cours, les encarts verts .

LIEN VERS LES RECAPITULATIFS

LIEN VERS LES RESUMES

Activité publiée le 28 08 2019
Dernière modification : 17 10 2021
Auteur : ows. h.