Variables et Types

Dans le niveau 1, nous avons appris les fonctionnalité du CPX, mais nous n’avons pas approfondi les base de la programmation. Ces concepts sont présents dans tous les languages de programmation sous une forme ou une autre.

Dans cette leçon, nous allons découvrir les variables et apprendre comment les utiliser pour enregistrer de l’information que l’on peut réutiliser plus tard.

Variables en couleur

Dans l’exercice 2 du niveau 1, nous avons envoyé le programme suivant au CPX :

import board
import neopixel

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=.1)
pixels.fill((0, 0, 0))
pixels.show()


while True:
    pixels[0] = (255, 0, 0)
    pixels[1] = (255, 127, 0)
    pixels[2] = (0, 255, 0)
    pixels[3] = (0, 255, 127)
    pixels[4] = (75, 0, 130)
    pixels[5] = (60, 0, 255)
    pixels[6] = (255, 255, 255)
    pixels[7] = (0, 100, 0)
    pixels[8] = (100, 0, 0)
    pixels[9] = (0, 0, 100)
    pixels.show()

Que signifient tous ces nombres ? Comment pouvons nous rendre ceci plus lisible ?

Créons une list de variable de couleurs organisée par nom.

import board
import neopixel

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=.1)

# Colors
NOIR = (0, 0, 0)
ROUGE = (255, 0, 0)
ROSE = (255, 100, 120)
ORANGE = (255, 100, 0)
JAUNE = (255, 255, 0)
VERT = (0, 255, 0)
CYAN = (0, 255, 255)
VIOLET = (255, 0, 255)
BLEU = (0, 0, 255)
BLEU_CLAIR = (80, 200, 175)
BLANC = (255, 255, 255)

pixels.fill(NOIR)

while True:
    pixels[0] = ROUGE
    pixels[1] = ORANGE
    pixels[2] = VERT
    pixels[3] = CYAN
    pixels[4] = VIOLET
    pixels[5] = BLEU
    pixels[6] = BLANC
    pixels[7] = JAUNE
    pixels[8] = ROSE
    pixels[9] = BLEU_CLAIR
    pixels.show()
  • une variable est utilisée pour enregistrer une donnée utilisée par le programme.
  • cette donnée peut être un nombre, une chaîne de caractère, une valeur logique (booléenne), une list ou encore d’autre types de données.
  • chaque variable a un nom qui peut être composé de lettres, chiffres et du caractère ’_’ (underscore/tiret bas).
  • aucun autre caractère (par exemple #$^*) ne peut être utilisé pour le nom et le nom ne doit PAS commencer par un chiffre.
  • le signe égal ’=’ est utilisé pour assigner (donner) une valeur à la variable.
  • on peut attribuer à une variable une valeur fixe ou encore une autre variable.
  • on peut aussi changer la valeur de la variable à une nouvelle valeur depuis la première assignation.

Utiliser les listes

Nous voulons arriver à ça :

# Apprends en plus https://realpython.com/python-variables/
# et https://realpython.com/python-data-types/
import time

import board
import neopixel

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=.1)

# Couleurs
NOIR = (0, 0, 0)
ROUGE = (255, 0, 0)
ROSE = (255, 100, 120)
ORANGE = (255, 100, 0)
JAUNE = (255, 255, 0)
VERT = (0, 255, 0)
CYAN = (0, 255, 255)
VIOLET = (255, 0, 255)
BLEU = (0, 0, 255)
BLEU_CLAIR = (80, 200, 175)
BLANC = (255, 255, 255)

pixels = pixels
pixels.fill(NOIR)
pixels.show()

while True:
    for i in range(len(pixels)):
        pixels[i] = ROUGE
        time.sleep(.05)
    time.sleep(1)

    for i in range(len(pixels)):
        pixels[i] = VERT
        time.sleep(.05)
    time.sleep(1)

Comment pouvons nous uniformiser ceci, de manière à ne pas avoir à spécifier une couleur pour chaque boucle ‘for’ ?

import time

import board
import neopixel

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=.1)

# Colors
NOIR = (0, 0, 0)
ROUGE = (255, 0, 0)
ROSE = (255, 100, 120)
ORANGE = (255, 100, 0)
JAUNE = (255, 255, 0)
VERT = (0, 255, 0)
CYAN = (0, 255, 255)
VIOLET = (255, 0, 255)
BLEU = (0, 0, 255)
BLEU_CLAIR = (80, 200, 175)
BLANC = (255, 255, 255)

couleurs = [
    ROSE,
    ROUGE,
    ORANGE,
    JAUNE,
    VERT,
    CYAN,
    VIOLET,
    BLEU,
    BLEU_CLAIR,
    BLANC
]

pixels.fill(NOIR)
pixels.show()

while True:
    for i in range(len(pixels)):
        pixels[i] = couleurs[i]
        time.sleep(.05)
    time.sleep(1)
Thanks! We hope you found what you are looking for. Please feel free to contribute via Github.