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 está fuertemente tipado, lo que significa que no se pueden realizar operaciones con tipos incompatibles sin convertirlos explícitamente. Por ejemplo:
sports_balls = 2 # balls is an integer
barrels = "4" # barrels is a string
result = barrels + sports_balls # Creates a TypeError
Para resolver estos problemas, debe convertir explícitamente los tipos, si corresponde:
sports_balls = 2 # sports_balls is an integer
barrels = "4" # barrels is a string
# Convert barrels to an integer before adding
result = int(barrels) + sports_balls
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.
Local variables – Declared inside a function and only used within that scope; best for temporary or isolated values.
Global variables – Declared outside any function and used throughout the project; good for sharing data between functions.
Integer – Whole numbers used for counting, distances, or anything without decimals.
Float – Numbers with decimal points, useful for precise measurements or calculations.
String – Text values, used for messages, labels, or displaying readable output.
Boolean –
True
orFalse
values for logic and decision-making.NoneType – Represents “no value yet,” often used as a placeholder.
Range – Automatically generates sequences of numbers, most commonly used in loops.
List – A changeable collection of items; good for storing groups of values like objects or sensor readings.
2D List – A list of lists; ideal for representing rows, grids, or table-like data.
Tuple – A fixed sequence of values that can’t be changed; useful for grouped, unchanging data.
Declaración y asignación de una variable#
Para crear una variable, simplemente asigne un valor a un nombre usando 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 alcance 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!"
robot.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: Las variables globales son accesibles desde cualquier parte del programa, lo que facilita el intercambio de datos entre funciones. Sin embargo, depender excesivamente de ellas puede tener efectos secundarios no deseados, ya que los cambios en la variable en una parte del programa pueden afectar a otras partes de forma impredecible. Por esta razón, se suelen preferir las variables locales siempre que sea posible, ya que limitan el alcance de una variable a la función específica donde se define. Esto reduce la probabilidad de conflictos y facilita la depuración.
# The variable is defined outside a function
message = "I'm global!"
def show_global():
# You can access 'message' inside a function
robot.screen.print(message)
robot.screen.next_row()
show_global()
# And you can access 'message' outside a function
robot.screen.print(message)
De forma predeterminada, al asignar un valor a una variable dentro de una función se crea una variable local. Para modificar una variable global dentro de una función, debe declararla explícitamente con la palabra clave 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
robot.screen.print(f"Count: {count}")
robot.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 entero.
distance = 50
# Move the robot forward for the variable value in mm
robot.move_for(distance, 0)
# Add to the variable and move forward the new value, for 100mm total
distance = distance + 50
robot.move_for(distance, 0)
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
robot.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!"
robot.screen.print(message)
Nota: Una cadena siempre debe estar entre comillas iguales, ya sean simples ('
) o dobles ("
). Puede usar cualquiera de los dos estilos, pero las comillas de apertura y cierre deben coincidir.
Boolean#
Un booleano representa valores True
o False
.
# Set the state of the variable
delivered = False
# Print different messages depending on the Boolean.
if delivered:
robot.screen.print("Package delivered!")
else:
robot.screen.print("Delivering...")
Los valores booleanos se pueden cambiar en cualquier momento del proyecto.
# Print the value of the delivered variable
delivered = True
robot.screen.print(delivered)
wait(2,SECONDS)
# Clear the screen and print the value of the variable again
robot.screen.clear_screen(Color.BLACK)
delivered = False
robot.screen.print(delivered)
NoneType#
NoneType representa la ausencia de un valor en 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:
robot.screen.print("No task!")
else:
robot.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)
El valor
start
es inclusivo (la secuencia comienza aquí). El valor predeterminado es 0.El valor
stop
es exclusivo (la secuencia se detiene antes de este número).El
step
determina cuánto aumenta (o disminuye) cada número. El valor predeterminado es 1.
# Drive and turn 4 times to move in a square
for index in range(4):
robot.move_for(50, 0)
robot.turn_for(RIGHT, 90)
# 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
robot.screen.print(index)
robot.screen.next_row()
List#
Una lista es una estructura versátil que almacena múltiples valores en una sola variable. Su contenido se puede modificar, acceder e iterar fácilmente.
# 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
robot.screen.print(index)
robot.screen.next_row()
Se pueden agregar listas usando append
.
# 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
robot.screen.print(index)
robot.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:
robot.screen.print(element, ", ")
robot.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
robot.screen.print(matrix[0])
Tuple#
Una tupla es una secuencia de elementos que no se pueden modificar una vez creados. Se suelen usar para agrupar valores relacionados.
# Define a tuple
set_1 = (100, "Left")
# Print the tuple
robot.screen.print(set_1)
Las tuplas se crean utilizando paréntesis ()
en lugar de corchetes []
.