Variáveis e Tipos

No nível 1, abordamos os recursos do Circuit Playground Express, mas não nos aprofundamos nos conceitos básicos de programação. Esses conceitos estão presentes em todas as linguagens de programação, de alguma forma.

Nesta aula, aprenderemos sobre variáveis ​​e como podemos usá-las para armazenar informações para usá-las novamente mais tarde.

Variáveis ​​de Cor

Do nível 1 exercício 2, colocamos o seguinte programa no 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()

O que esses números significam? Como podemos tornar isso mais legível?

Faça uma lista de variáveis ​​de cores por nome de cor.

import board
import neopixel

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

# Cores
BLACK = (0, 0, 0)
RED = (255, 0, 0)
PINK = (255, 100, 120)
ORANGE = (255, 100, 0)
YELLOW = (255, 255, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
PURPLE = (255, 0, 255)
BLUE = (0, 0, 255)
LIGHT_BLUE = (80, 200, 175)
WHITE = (255, 255, 255)

pixels.fill(BLACK)

while True:
    pixels[0] = RED
    pixels[1] = ORANGE
    pixels[2] = GREEN
    pixels[3] = CYAN
    pixels[4] = PURPLE
    pixels[5] = BLUE
    pixels[6] = WHITE
    pixels[7] = YELLOW
    pixels[8] = PINK
    pixels[9] = LIGHT_BLUE
    pixels.show()
  • Uma variável é usada para armazenar dados a serem usados ​​pelo programa.
  • Esses dados podem ser um número, uma string, um booleano, uma lista ou algum outro tipo de dado.
  • Cada variável tem um nome que pode consistir em letras, números e o caractere sublinhado (_).
  • Nenhum outro tipo de caractere pode ser usado para criar o nome da variável e a variável NÃO pode começar com um número.
  • O sinal de igual = é usado para atribuir um valor a uma variável.
  • Essa atribuição pode ser de um valor fixo ou retirada de outra variável existente.
  • Também pode ser usado para alterar o valor de uma variável de um valor para outro após a atribuição inicial ser feita.

Trabalhando com listas

No final chegamos a isto:

# Aprenda mais em https://realpython.com/python-variables/
# e https://realpython.com/python-data-types/
import time

import board
import neopixel

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

# Cores
BLACK = (0, 0, 0)
RED = (255, 0, 0)
PINK = (255, 100, 120)
ORANGE = (255, 100, 0)
YELLOW = (255, 255, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
PURPLE = (255, 0, 255)
BLUE = (0, 0, 255)
LIGHT_BLUE = (80, 200, 175)
WHITE = (255, 255, 255)

pixels = pixels
pixels.fill(BLACK)
pixels.show()

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

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

Como podemos simplificar isso para que não tenhamos que inserir uma cor para cada bloco for?

import time

import board
import neopixel

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

# Cores
BLACK = (0, 0, 0)
RED = (255, 0, 0)
PINK = (255, 100, 120)
ORANGE = (255, 100, 0)
YELLOW = (255, 255, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
PURPLE = (255, 0, 255)
BLUE = (0, 0, 255)
LIGHT_BLUE = (80, 200, 175)
WHITE = (255, 255, 255)

colors = [
    PINK,
    RED,
    ORANGE,
    YELLOW,
    GREEN,
    CYAN,
    PURPLE,
    BLUE,
    LIGHT_BLUE,
    WHITE
]

pixels.fill(BLACK)
pixels.show()

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