Aller au contenu

Découverte de la programmation

Découverte de Python

Python est le langage de programmation principal utilisé dans le cours de NSI. Cela signifie qu'en respectant les règles de grammaire du langage, il est possible d'écrire des textes en Python qui soient exécutables par l'ordinateur. L'interpréteur python se charge alors d'exécuter les lignes les unes après les autres.

Nous allons utiliser Thonny pour écrire et exécuter les codes Python.

img

La fenêtre de Thonny est divisée en deux parties :

  • l'éditeur dans lequel on écrira les codes en Python ;
  • la console dans laquelle on peut exécuter des instructions en Python.
  1. Copier-coller ou recopier dans l'éditeur de code le texte ci-dessous :

    🐍 Code Python
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    from turtle import *
    
    forward(180)
    left(90)
    forward(100)
    right(240)
    forward(50)
    
    # Commencer une ligne par un # permet de laisser un commentaire
    # forward(70)
    # le code en commentaire n'est pas exécuté
    done() # Ne pas effacer
    # Ne rien écrire ici
    

    Cliquer sur le bouton "Exécuter".

  2. Modifier au minimum trois lignes de code comme vous le souhaitez (par exemple en changeant left(90) en left(45), en commentant ou en décommentant une ligne de code), puis exécuter à nouveau.

    Que font les fonctions forward, left, et right ?

  3. Écrire des programmes Python (un par figure) qui réalisent les figures ci-dessous.

    img

    img

Répétition d'instructions avec la boucle for

Pour répéter une série d'instructions plusieurs fois on utilise le mot-clé for.

nombre est le nombre de répétitions voulues. Pour identifier le bloc d'instructions qui sera répété, il est décalé vers la droite de 4 espaces (représentés par le caractère ).

On parle d'indentation.

L'indentation permet de créer l'équivalent d'un bloc en Scratch. En python, l'indentation est significative et peut être une source d'erreurs.

🐍 Code Python
1
2
3
4
5
for i in range(nombre):
␣␣␣␣# instruction répétée
␣␣␣␣# ...
␣␣␣␣# instruction répétée
# instruction non répétée
  1. Recopier et exécuter le code ci-dessous.

    🐍 Code Python
    1
    2
    3
    4
    5
    6
    7
    from turtle import *
    
    for i in range(3):
        forward(80)
    left(120)
    
    done() # Ne pas effacer, ne pas écrire en dessous.
    
  2. Modifier l'indentation, et uniquement l'indentation, du code proposé pour représenter un triangle équilatéral de côté 80 pixels.

  3. Écrire un code python permettant d'afficher un carré de côté 80.

    Celui-ci ne doit comporter qu'une seule fois le mot forward et le mot left.

  4. Télécharger le fichier se trouvant à l'adresse https://edurl.fr/XyH4oiFC

    1. Exécuter le programme.

      Quel type d'erreur est utilisé par Python pour signifier qu'il y a un problème avec les espaces en début de ligne ?

    2. Modifier le code pour que le programme affiche un pentagramme.

Écrire un code python permettant de réaliser la figure ci-contre.

 

img

Réutiliser des morceaux de codes avec les fonctions

La notion de fonction est centrale en informatique. Plutôt que de recopier des instructions qui réalisent certaines figures, l'utilisation de fonctions permet de réutiliser des morceaux de codes utiles.

En bref, de la même façon que la fonction forward nous permet d'avancer d'une certaine distance précisée par le programmeureuse, on peut écrire le code d'une fonction carre qui permet de dessiner un carré, dont la longueur du côté est précisée par le programmeureuse.

🐍 Code Python
1
2
3
4
5
def carre(cote):
    for i in range(4):
        forward(cote)
        left(90)
# fin de la définition de la fonction carre

Une fois la fonction carre définie via le code ci-dessus, on peut utiliser à n'importe quel endroit du programme l'instruction carre(20) afin de dessiner un carré de côté 20.

De même qu'avec la boucle for, le bloc de la fonction est défini à l'aide de son indentation.

    1. Télécharger le fichier se trouvant à l'adresse https://edurl.fr/GgwjRY3L

    2. Sans rien modifier, exécuter le code Python. Que constate-t-on ?

    3. Modifier le code afin que son exécution réalise un triangle équilatéral de côté 50.

  1. En utilisant la fonction triangle, reproduire la figure ci-dessous.

    img

    On pourra utiliser les instructions pencolor("red") et pencolor("black") pour changer la couleur de tracé de la tortue en rouge et noir. Les triangles sont tous équilatéraux et ont pour longueur de côté 100, 150, 200, 250.

  2. Dessiner la figure de la maison présente dans l'exercice 1 à l'aide des fonctions carre et triangle.

On considère la fonction

🐍 Code Python
1
2
3
4
5
6
7
8
def mystere(a, b, c):
    cote = b
    for i in range(2*a):
        forward(cote)
        left(90)
        forward(cote)
        left(90)
        cote = cote + c
    1. Quelle figure réalise l'exécution de l'instruction mystere(4, 20, 30) ?

    2. Modifier le code en renommant correctement les noms mystere, a, b, et c afin que ceux-ci soient plus compréhensibles par rapport à la figure réalisée par la fonction mystere.

  1. En vous inspirant du code de la fonction mystere, écrire le code d'une fonction spirale_triangle afin de réaliser la figure ci-dessous.

    img

  1. À l'aide de la fonction carre et d'une boucle for reproduire une figure similaire à la figure suivante, constituée de carrés de longueur 70 pixels.

    img

  2. Écrire une fonction escalier possédant deux arguments: hauteur_marche et nbr_marches, dessinant un escalier possédant nbr_marches marches de hauteur hauteur_marche.

    Par exemple, l'appel escalier(20, 5) doit afficher le dessin suivant :

    img

    1. Écrire une fonction pentagone d'argument longueur qui trace un pentagone de côtés de longueur: longueur.

    2. Les fonctions carre, triangle et pentagone se ressemblent beaucoup, or en informatique nous n'aimons pas nous répéter.

      Définir une fonction polygone de paramètres nbr_cotes et longueur qui construit le polygone régulier à nbr_cotes côtés de longueur: longueur.

    3. À l'aide de la fonction polygone et d'une boucle reproduire le dessin suivant :

      img

  3. La fonction penup permet de lever le stylo de la tortue, et donc de ne plus laisser de trace lorsqu'elle avance.

    La fonction dot permet de tracer un point à l'emplacement de la tortue.

    🐍 Code Python
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from turtle import *
    
    penup()
    dot()
    forward(30)
    dot()
    forward(50)
    dot()
    done()
    
    1. Recopier et exécuter le code ci-dessus.

    2. Écrire un code python permettant de réaliser la figure ci-dessous.

      L'écart entre chaque point est de 30 pixels, il y a 5 lignes et 7 colonnes de points.

      img

      Indication. On pourra commencer à écrire une fonction ligne de paramètre nbr_points qui représente une ligne de nbr_points points espacés de 30 pixels.