Variables#
Introducción#
Las variables almacenan datos y permiten reutilizarlos y manipularlos en todo el programa. Python es un lenguaje de tipado dinámico, lo que significa que no es necesario declarar explícitamente el tipo de una variable. En su lugar, el tipo se infiere automáticamente en función del valor asignado. Por ejemplo:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Python también es fuertemente tipado, lo que significa que no se pueden realizar operaciones con tipos incompatibles sin convertirlos explícitamente. Por ejemplo:
controller = 1 # controller is an integer
modules = "3" # modules is a string
result = controller + modules # Creates a TypeError
Para resolver estos problemas, debe convertir explícitamente los tipos, si corresponde:
controller = 1 # controller is an integer
modules = "3" # modules is a string
# Convert modules to an integer before adding.
result = int(modules) + controller
Esta API explica los tipos de variables comunes en Python. Si bien no es una lista exhaustiva, abarca los tipos que probablemente usará en la práctica.
Variables locales – Se declaran dentro de una función y solo se usan dentro de ese ámbito; mejor para valores temporales o aislados.
Variables globales – Se declaran fuera de cualquier función y se utilizan en todo el proyecto; son útiles para compartir datos entre funciones.
Entero – Números enteros utilizados para contar, distancias o cualquier cosa sin decimales.
Float – Números con puntos decimales, útiles para mediciones o cálculos precisos.
Cadena – Valores de texto, utilizados para mensajes, etiquetas o para mostrar resultados legibles.
Booleano –
TrueoFalsevalores para lógica y toma de decisiones.NoneType – Representa la ausencia de un valor en Python.
Rango – Genera automáticamente secuencias de números, más comúnmente utilizadas en bucles.
Lista – Una colección de elementos modificables; útil para almacenar grupos de valores como objetos o lecturas de sensores.
Lista 2D – Una lista de listas; ideal para representar filas, cuadrículas o datos similares a tablas.
Tupla – Una secuencia fija de valores que no se pueden cambiar; útil para datos agrupados e inmutables.
Declaración y asignación de una variable#
Para crear una variable, simplemente asigne un valor a un nombre utilizando el operador =:
distance = 100
Al nombrar una variable, se deben respetar las siguientes reglas:
El nombre no puede contener caracteres especiales (por ejemplo, un signo de exclamación).
El nombre no puede comenzar con un número.
El nombre no puede utilizar espacios.
El nombre no puede ser una palabra reservada en VEXcode (por ejemplo, Drivetrain).
Local Variables#
Las variables locales se definen dentro de una función o bloque de código. Solo son accesibles dentro del ámbito de esa función o bloque y no son visibles fuera de él.
def show_local():
# This variable only exists inside this function.
message = "I'm local!"
controller.screen.print(message)
show_local()
Las variables locales se utilizan comúnmente para almacenar valores temporales que solo son relevantes dentro de una función o parte específica del programa.
Global Variables#
Las variables globales se definen fuera de cualquier función o bloque. Se puede acceder a ellas y leerlas en cualquier parte del programa, incluso dentro de las funciones.
Nota: Una variable global se puede usar en cualquier parte del proyecto. Esto puede ser útil, pero también puede dificultar la detección de errores. Si el valor cambia, es posible que deba revisar varias partes del proyecto para encontrar dónde se produjo el cambio. Use una variable local cuando solo una función necesite el valor.
# The variable is defined outside a function.
message = "I'm global!"
def show_global():
# You can access 'message' inside a function.
controller.screen.print(message)
controller.screen.next_row()
show_global()
# And you can access 'message' outside a function.
controller.screen.print(message)
Por defecto, asignar un valor a una variable dentro de una función crea una variable local. Para modificar una variable global dentro de una función, debe declararla explícitamente usando la clave .
# 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
controller.screen.print(f"Count: {count}")
controller.screen.next_row()
increase_count()
increase_count()
Tipos de datos#
Las variables de Python pueden almacenar varios tipos de datos, cada uno adecuado para diferentes casos de uso. A continuación, se muestran los tipos más comunes:
Integer#
Un entero es un número positivo o negativo.
distance = 50
drone.take_off(climb_to=500)
# Move the robot forward for the variable value in mm.
drone.climb_for(direction=DOWN, distance=distance, velocity=50, units=MM)
wait(2, SECONDS)
# Add to the variable and move forward the new value,
# for 100mm total.
distance = distance + 50
drone.climb_for(direction=UP, distance=distance, velocity=50, units=MM)
wait(2, SECONDS)
drone.land()
Float#
Un float es un número con punto decimal.
# Store a value with decimal points.
raw_value = 0.88
# Print the decimal value as a percentage.
controller.screen.print(raw_value * 100, "%")
String#
Una cadena es una secuencia de caracteres, comúnmente utilizada para texto.
# Set the variable to a string then print the string.
message = "Ready!"
controller.screen.print(message)
Nota: Una cadena de texto siempre debe ir entre comillas simples ( ’ ( ” dos estilos, pero las comillas de apertura y cierre deben coincidir.
Boolean#
Un booleano representa los valores True o False.
# Set the state of the variable.
delivered = False
# Print different messages depending on the Boolean.
if delivered:
controller.screen.print("Package delivered!")
else:
controller.screen.print("Delivering...")
Los valores booleanos se pueden cambiar en cualquier momento del proyecto.
# Print the value of the delivered variable
delivered = True
controller.screen.print(delivered)
wait(2,SECONDS)
# Clear the screen and print the value of the variable again
controller.screen.clear_screen(color=GREEN)
delivered = False
controller.screen.print(delivered)
NoneType#
NoneType representa la ausencia de un valor en Python.
# Write what the controller's task should be as a string
current_task = None
# Check if a task is assigned
if current_task is None:
controller.screen.print("No task!")
else:
controller.screen.print(f"Task: {current_task}")
Range#
Un rango es una secuencia de números, comúnmente utilizada en bucles para generar secuencias numéricas. Su formato es el siguiente:
range(start, stop, step)
Componentes |
Descripción |
|---|---|
|
Opcional. El valor inicial es inclusivo (la secuencia comienza aquí). El valor predeterminado es 0. |
|
El valor de parada es exclusivo (la secuencia se detiene antes de este número). |
|
Opcional. El paso determina cuánto aumenta (o disminuye) cada número. El valor predeterminado es 1. |
# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
drone.move_for(direction=0, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.move_for(direction=180, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.land()
# 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.
controller.screen.print(index)
controller.screen.next_row()
List#
Una lista almacena un grupo de elementos en una variable. Puedes agregar elementos, eliminarlos, modificarlos o usar cada elemento individualmente en tu proyecto. Las listas son útiles cuando deseas mantener juntos valores relacionados, como lecturas de sensores, colores o nombres de objetos. Las listas se crean usando corchetes [].
# Define a list of colors.
colors = ["Red", "Green", "Blue"]
# Repeat for the number of items in the colors list.
for color in colors:
# Print each color in order
controller.screen.print(color)
controller.screen.next_row()
Utilice append para agregar elementos a una lista.
# Define a list of colors.
colors = ["Red", "Green", "Blue"]
# Append a new color to the list.
colors.append("Yellow")
# Repeat for the number of items in the colors list.
for color in colors:
# Print each color in order
controller.screen.print(color)
controller.screen.next_row()
2D List#
Una lista 2D, o lista de listas, se usa comúnmente para representar cuadrículas, tablas o matrices. Cada sublista representa una fila o un grupo específico de datos.
# 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:
controller.screen.print(element, end=", ")
controller.screen.next_row()
Puede modificar elementos específicos o incluso sublistas enteras dentro de una 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.
controller.screen.print(matrix[0])
Tuple#
Una tupla es una secuencia de elementos que no se pueden modificar una vez creados. Se utilizan a menudo para agrupar valores relacionados.
# Define a tuple.
set_1 = (100, "Left")
# Print the tuple.
controller.screen.print(set_1)
Las tuplas se crean usando paréntesis () en lugar de corchetes [].