Variáveis#

Introdução#

As variáveis ​​armazenam dados e permitem reutilizá-los e manipulá-los em todo o seu programa. Python é uma linguagem dinamicamente tipada, o que significa que não tem de declarar o tipo de uma variável explicitamente. Em vez disso, o tipo é inferido automaticamente com base no valor que lhe é atribuído. Por exemplo:

angle = 90           # angle is an integer
dist = "Distance: "  # dist is a string
steps = 2.5          # steps is a float

O Python também é fortemente tipado, o que significa que não pode realizar operações em tipos incompatíveis sem os converter explicitamente. Por exemplo:

red_blocks = 2                     # red_blocks is an integer
blue_blocks = "4"                  # blue_blocks is a string
result = red_blocks + blue_blocks  # Creates a TypeError

Para resolver estes problemas, deve converter explicitamente os tipos, se apropriado:

red_blocks = 2     # red_blocks is an integer
blue_blocks = "4"  # blue_blocks is a string

# Convert blue_blocks to an integer before adding
result = int(blue_blocks) + red_blocks

Esta API explica os tipos de variáveis ​​mais comuns em Python. Embora não seja uma lista exaustiva, abrange os tipos que provavelmente irá utilizar na prática.

  • Variáveis ​​locais – Declaradas dentro de uma função e utilizadas apenas dentro desse âmbito; melhor para valores temporários ou isolados.

  • Variáveis ​​globais – Declaradas fora de qualquer função e utilizadas em todo o projeto; boas para partilhar dados entre funções.

  • Inteiro – Números inteiros utilizados para contagem, distâncias ou qualquer coisa sem decimais.

  • Float – Números com casas decimais, úteis para medições ou cálculos precisos.

  • String – Valores de texto, utilizados para mensagens, etiquetas ou visualização de saída legível.

  • Booleano – True ou False valores para a lógica e tomada de decisão.

  • NoneType – Representa a ausência de um valor em Python.

  • Range – Gera automaticamente sequências de números, mais comummente utilizadas em loops.

  • List – Uma coleção mutável de itens; bom para armazenar grupos de valores como objetos ou leituras de sensores.

  • Lista 2D – Uma lista de listas; ideal para representar linhas, grelhas ou dados em formato de tabela.

  • Tupla – Uma sequência fixa de valores que não podem ser alterados; útil para dados agrupados e imutáveis.

Declarar e atribuir um valor a uma variável#

Para criar uma variável, basta atribuir um valor a um nome utilizando o operador =:

distance = 100

Ao nomear uma variável, devem ser observadas as seguintes regras:

  • O nome não pode conter caracteres especiais (por exemplo, um ponto de exclamação).

  • O nome não pode começar por um número.

  • O nome não pode conter espaços.

  • O nome não pode ser uma palavra reservada no VEXcode (ex: Drivetrain).

Local Variables#

As variáveis ​​locais são definidas dentro de uma função ou bloco de código. Só são acessíveis no âmbito dessa função ou bloco e não são visíveis fora dele.

def show_local():
    # This variable only exists inside this function
    message = "I'm local!" 
    brain.print(message)

show_local()

As variáveis ​​locais são normalmente utilizadas para armazenar valores temporários que são relevantes apenas dentro de uma função específica ou parte do programa.

Global Variables#

As variáveis ​​globais são definidas fora de qualquer função ou bloco. Podem ser acedidas e lidas em qualquer lugar do programa, incluindo dentro de funções.

Nota: Uma variável global pode ser utilizada em qualquer parte do seu projeto. Isto pode ser útil, mas também pode dificultar a localização de erros. Se o valor mudar, poderá ser necessário verificar várias partes do projeto para ver onde ocorreu a alteração. Utilize uma variável local quando apenas uma função necessita do valor.

# The variable is defined outside a function
message = "I'm global!"  

def show_global():
    # You can access 'message' inside a function
    brain.print(message)

show_global()
# And you can access 'message' outside a function
brain.print(message)

Por defeito, a atribuição de um valor a uma variável dentro de uma função cria uma variável local. Para modificar uma variável global dentro de uma função, deve declará-la explicitamente utilizando a palavra-chave global.

# Define the global variable
count = 0 

def increase_count():
    # Use the global keyword to let you modify the
    # global variable
    global count
    count = count + 1
    brain.print("Count: {}".format(count))

increase_count()
brain.new_line()
increase_count()

Tipos de dados#

As variáveis ​​em Python podem armazenar diversos tipos de dados, cada um adequado a diferentes casos de utilização. Abaixo estão os tipos mais comuns:

Integer#

Um número inteiro é um número positivo ou negativo.

distance = 100

# Move the arm to the distance value on the y-axis
arm.move_to(50, distance, 150)

# Add to the variable and move forward the new value
wait(1, SECONDS)
distance = distance + 100
arm.move_to(50, distance, 150)

Float#

Um float é um número decimal.

# Store a value with decimal points
raw_value = 0.88

# Print the decimal value as a percentage
print(raw_value * 100, "%")

String#

Uma string é uma sequência de caracteres, normalmente utilizada para texto.

# Set the variable to a string then print the string
message = "Ready!"
brain.print(message)

Nota: Uma string deve ser sempre delimitada por aspas correspondentes, simples (’) ou duplas (”). Pode utilizar qualquer um dos estilos, mas as aspas de abertura e fecho devem ser iguais.

Boolean#

Um valor Booleano representa True (Verdadeiro), False Falso).

# Set the state of the variable
delivered = False

# Print different messages depending on the Boolean.
if delivered:
    brain.print("Package delivered!")
else: 
    brain.print("Delivering...")

Os valores booleanos podem ser alterados em qualquer ponto do projeto.

# Print the value of the delivered variable
delivered = True
brain.print(delivered)
wait(2,SECONDS)

# Clear the screen and print the value of the variable again
brain.clear_screen()
delivered = False
brain.print(delivered)

NoneType#

NoneType representa a ausência de um valor em Python.

# Write what the robot's task should be as a string
current_task = None

# Check if a task is assigned
if current_task is None:
    brain.print("No task!")
else:
    brain.print("Task: {}".format(current_task))

Range#

Um intervalo é uma sequência de números, normalmente utilizada em loops para gerar sequências numéricas. Segue o formato:

range(start, stop, step)

Componentes

Descrição

start

Opcional. O valor inicial é inclusivo (a sequência começa aqui). O predefinido é 0.

stop

O valor de paragem é único (a sequência termina antes desse número).

step

Opcional. O incremento determina o quanto cada número aumenta (ou diminui). O predefinido é 1.

# move in a square
for index in range(4):
    arm.move_inc(100, 0, 0)
    arm.move_inc(0, 100, 0)
    arm.move_inc(-100, 0, 0)
    arm.move_inc(0, 100, 0)

# Count by 2 starting at 1 and ending before 12
for index in range(1, 12, 2): 
    # Print the values on the screen with each loop
    brain.print(index)
    brain.new_line()

List#

Uma lista armazena um grupo de artigos numa variável. Pode adicionar, remover, alterar ou utilizar cada item individualmente no seu projeto. As listas são úteis quando pretende manter valores relacionados juntos, como leituras de sensores, cores ou nomes de objetos. As listas são criadas usando parênteses rectos [].

# Define a list of colors
colors = ["Red", "Green", "Blue", "Purple"]

# Repeat for the number of items in the colors list
for index in colors:
    # Print each color in order
    brain.print(index)
    brain.new_row()

Utilize append para adicionar itens a uma lista.

# Define a list of colors
colors = ["Red", "Green", "Blue", "Purple"]

# Append a new color to the list
colors.append("Yellow")

# Repeat for the number of items in the colors list
for index in colors:
    # Print each color in order
    brain.print(index)
    brain.new_row()

2D List#

Uma lista bidimensional, ou lista de listas, é normalmente utilizada para representar grelhas, tabelas ou arrays. Cada sublista representa uma linha ou um agrupamento específico de dados.

# Assign the values in the matrix 2D list
matrix = [
    ["A", 1, "Red"],
    ["B", 2, "Orange"],
    ["C", 3, "Yellow"]
]
# Loop through each row
for row in matrix: 
    # Loop through each column in the row 
    for element in row: 
        brain.print(element, ", ")
    brain.new_line()

Pode modificar elementos específicos ou até mesmo sublistas inteiras dentro de uma lista 2D:

# Assign the values in the matrix 2D list
matrix = [
    ["A", 1, "Red"],
    ["B", 2, "Orange"],
    ["C", 3, "Yellow"]
]
# Modify the color (in column 2) in row 0
matrix[0][2] = "Blue"

# Print the modified row from the matrix 2D list 
brain.print(matrix[0])

Tuple#

Uma tupla é uma sequência de itens que não pode ser alterada após a sua criação. São frequentemente usadas para agrupar valores relacionados.

# Define a tuple
set_1 = (100, "Left")

# Print the tuple
brain.print(set_1)

As tuplas são criadas utilizando parênteses () em vez de parêntesis rectos [].