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_disks = 2                       # red_disks is an integer
green_disks = "4"                      # green_disks is a string
result = red_disks + green_disks  # Creates a TypeError

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

red_disks = 2     # red_disks is an integer
green_disks = "4" # green_disks is a string

# Convert green_disks to an integer before adding
result = int(green_disks) + red_disks

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!" 
    console.print(message)

def main():
    show_local()

# Start threads — Do not delete
start_thread(main)

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
    console.print(message)
    console.new_line()

def main():
    show_global()
    # And you can access 'message' outside a function
    console.print(message)

# Start threads — Do not delete
start_thread(main)

Por predefinição, 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
    console.print("Count: {}".format(count))

def main():
    increase_count()
    console.new_line()
    increase_count()

# Start threads — Do not delete
start_thread(main)

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.

# Build Used: Super Code Base 2.0
def main():
    distance = 100

    # Move the robot forward for the variable value in mm
    drivetrain.drive_for(FORWARD, distance, MM)

    # Add to the variable and move forward the new value, 
    # for 200mm total
    wait(1, SECONDS)
    distance = distance + 100
    drivetrain.drive_for(FORWARD, distance, MM)

# Start threads — Do not delete
start_thread(main)

Float#

Um float é um número decimal.

def main():
    # Store a value with decimal points
    raw_value = 0.88

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

# Start threads — Do not delete
start_thread(main)

String#

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

def main():
    # Set the variable to a string then print the string
    message = "Ready!"
    console.print(message)

# Start threads — Do not delete
start_thread(main)

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).

def main():
    # Set the state of the variable
    delivered = False

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

# Start threads — Do not delete
start_thread(main)

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

def main():
    # Print the value of the delivered variable
    delivered = True
    console.print(delivered)
    console.new_line()
    wait(2,SECONDS)

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

# Start threads — Do not delete
start_thread(main)

NoneType#

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

def main():
    # No task is assigned yet
    current_task = None

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

# Start threads — Do not delete
start_thread(main)

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.

# Build Used: Super Code Base 2.0
def main():
    # Drive and turn 4 times to move in a square
    for index in range(4):
        drivetrain.drive_for(FORWARD, 100, MM)
        drivetrain.turn_for(RIGHT, 90)

# Start threads — Do not delete
start_thread(main)

def main():
    # 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
        console.print(index)
        console.new_line()

# Start threads — Do not delete
start_thread(main)

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 [].

def main():
    # 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
        console.print(index)
        console.new_line()

# Start threads — Do not delete
start_thread(main)

Utilize append para adicionar itens a uma lista.

def main():
    # 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
        console.print(index)
        console.new_line()

# Start threads — Do not delete
start_thread(main)

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.

def main():
    # 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: 
            console.print(element, ", ")
        console.new_line()

# Start threads — Do not delete
start_thread(main)

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

def main():
    # 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 
    console.print(matrix[0])

# Start threads — Do not delete
start_thread(main)

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.

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

    # Print the tuple
    console.print(set_1)

# Start threads — Do not delete
start_thread(main)

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