Переменные#
Введение#
Переменные хранят данные и позволяют повторно использовать и изменять их во всей программе. Python — это язык с динамической типизацией, то есть вам не нужно явно указывать тип переменной. Вместо этого тип определяется автоматически на основе присвоенного ей значения. Например:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Python также является строго типизированным языком, что означает, что вы не можете выполнять операции над несовместимыми типами без явного преобразования. Например:
red_tiles = 2 # red_tiles is an integer
green_tiles = "4" # green_tiles is a string
result = red_tiles + green_tiles # Creates a TypeError
Для решения подобных проблем необходимо явно преобразовать типы, если это необходимо:
red_tiles = 2 # red_tiles is an integer
green_tiles = "4" # green_tiles is a string
# Convert green_tiles to an integer before adding
result = int(green_tiles) + red_tiles
В этом API описаны распространенные типы переменных в Python. Хотя это не исчерпывающий список, он охватывает типы, которые вы, скорее всего, будете использовать на практике.
Локальные переменные – Объявляются внутри функции и используются только в пределах этой области видимости; лучше всего подходят для временных или изолированных значений.
Глобальные переменные – Объявляются вне любой функции и используются во всем проекте; удобны для обмена данными между функциями.
Целое число – Целые числа, используемые для счета, измерения расстояний или чего-либо без десятичных знаков.
Числа с плавающей запятой – Числа с десятичными знаками, полезные для точных измерений или вычислений.
Строка – Текстовые значения, используемые для сообщений, меток или отображения читаемого вывода.
Логическое значение –
TrueилиFalseзначения для логики и принятия решений.NoneType – Обозначает отсутствие значения в Python.
Диапазон – Автоматически генерирует последовательности чисел, чаще всего используемые в циклах.
Список – Изменяемая коллекция элементов; хорошо подходит для хранения групп значений, таких как объекты или показания датчиков.
Двумерный список – Список списков; идеально подходит для представления строк, таблиц или данных в табличном виде.
Кортеж – Фиксированная последовательность значений, которые нельзя изменить; полезно для сгруппированных, неизменяемых данных.
Объявление и присваивание переменной#
Для создания переменной достаточно присвоить ей имя, используя оператор =:
distance = 3
При именовании переменной необходимо соблюдать следующие правила:
Имя не может содержать специальные символы (например, восклицательный знак).
Имя не может начинаться с цифры.
В имени нельзя использовать пробелы.
В VEXcode имя не может быть зарезервированным словом (например, robot).
Local Variables#
Локальные переменные определяются внутри функции или блока кода. Они доступны только в пределах этой функции или блока и не видны за его пределами.
def show_local():
# This variable only exists inside this function
message = "I'm local!"
console.print(message)
show_local()
Локальные переменные обычно используются для хранения временных значений, которые актуальны только в рамках конкретной функции или части программы.
Global Variables#
Глобальные переменные определяются вне какой-либо функции или блока. Доступ к ним и их чтение возможны в любом месте программы, включая функции.
Примечание: Глобальную переменную можно использовать в любом месте вашего проекта. Это может быть полезно, но также может затруднить поиск ошибок. Если значение переменной изменится, вам может потребоваться проверить множество частей проекта, чтобы увидеть, где произошло изменение. Используйте локальную переменную, когда значение переменной требуется только одной функции.
# 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()
show_global()
# And you can access 'message' outside a function
console.print(message)
По умолчанию, присвоение значения переменной внутри функции создает локальную переменную. Чтобы изменить глобальную переменную внутри функции, необходимо явно объявить ее, используя ключевое слово global ( 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))
increase_count()
console.new_line()
increase_count()
Типы данных#
Переменные в Python могут хранить различные типы данных, каждый из которых подходит для разных задач. Ниже перечислены наиболее часто используемые типы:
Integer#
Целое число — это положительное или отрицательное число.
steps = 3
# Drive forward for the variable value in steps
robot.drive_for(FORWARD, steps, STEPS)
# Add to the variable and drive forward the new value
wait(1, SECONDS)
steps = steps + 1
robot.drive_for(FORWARD, steps, STEPS)
Float#
Число с плавающей запятой (float) — это число с десятичной запятой.
# Store a value with decimal points
raw_value = 0.88
# Print the decimal value as a percentage
console.print(raw_value * 100, "%")
String#
Строка — это последовательность символов, обычно используемая для текста.
# Set the variable to a string then print the string
message = "Ready!"
console.print(message)
Примечание: Строка всегда должна быть заключена в одинаковые кавычки, одинарные (“) или двойные (»). Можно использовать любой стиль, но открывающие и закрывающие кавычки должны совпадать.
Boolean#
Логическое значение (Boolean) обозначает True или False значения.
# 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...")
Логические значения можно изменять на любом этапе проекта.
# 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)
NoneType#
NoneType в Python обозначает отсутствие значения.
# 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))
Range#
Диапазон (или диапазон) — это последовательность чисел, обычно используемая в циклах для генерации числовых последовательностей. Она имеет следующий формат:
range(start, stop, step)
Компоненты |
Описание |
|---|---|
|
Необязательно. Начальное значение включает в себя (последовательность начинается здесь). Значение по умолчанию — 0. |
|
Значение остановки является исключительным (последовательность заканчивается до этого числа). |
|
Необязательный параметр. Этот шаг определяет, насколько увеличивается (или уменьшается) каждое число. Значение по умолчанию — 1. |
# Drive and turn 4 times to move in a square
for index in range(4):
robot.drive_for(FORWARD, 1, STEPS)
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
console.print(index)
console.new_line()
List#
Список хранит группу элементов в одной переменной. Вы можете добавлять элементы, удалять элементы, изменять элементы или использовать каждый элемент по отдельности в своем проекте. Списки полезны, когда вы хотите хранить связанные значения вместе, например, показания датчиков, цвета или имена объектов. Списки создаются с помощью квадратных скобок [].
# 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()
Используйте 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
console.print(index)
console.new_line()
2D List#
Двумерный список, или список списков, обычно используется для представления таблиц, сеток или матриц. Каждый подсписок представляет собой строку или определенную группу данных.
# 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()
В двумерном списке можно изменять отдельные элементы или даже целые подсписки:
# 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])
Tuple#
Кортеж — это последовательность элементов, которые нельзя изменить после их создания. Они часто используются для группировки связанных значений.
# Define a tuple
set_1 = (3, "Left")
# Print the tuple
console.print(set_1)
Кортежи создаются с использованием круглых скобок () вместо квадратных скобок [].