Змінні#
Вступ#
Змінні зберігають дані та дозволяють вам повторно використовувати їх і маніпулювати ними протягом усієї програми. Python — це динамічно типізована мова, тобто вам не потрібно явно оголошувати тип змінної. Натомість тип автоматично визначається на основі призначеного їй значення. Наприклад:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Python також має строгу типізацію, що означає, що ви не можете виконувати операції над несумісними типами без їх явного перетворення. Наприклад:
controller = 1 # controller is an integer
modules = "3" # modules is a string
result = controller + modules # Creates a TypeError
Щоб вирішити такі проблеми, потрібно явно конвертувати типи, якщо це доречно:
controller = 1 # controller is an integer
modules = "3" # modules is a string
# Convert modules to an integer before adding.
result = int(modules) + controller
Цей API пояснює поширені типи змінних у Python. Хоча список не є вичерпним, він охоплює типи, які ви, найімовірніше, використовуватимете на практиці.
Локальні змінні – Оголошуються всередині функції та використовуються лише в межах цієї області видимості; найкраще використовувати для тимчасових або ізольованих значень.
Глобальні змінні – Оголошуються поза будь-якою функцією та використовуються протягом усього проєкту; добре підходять для обміну даними між функціями.
Ціле число – Цілі числа, що використовуються для підрахунку, відстаней або будь-чого без десяткових знаків.
Float – Числа з десятковими комами, корисні для точних вимірювань або обчислень.
String – Текстові значення, що використовуються для повідомлень, міток або відображення читабельного виводу.
Boolean –
TrueабоFalseзначення для логіки та прийняття рішень.NoneType – Позначає відсутність значення в Python.
Діапазон – Автоматично генерує послідовності чисел, найчастіше використовуються в циклах.
Список – Змінна колекція елементів; добре підходить для зберігання груп значень, таких як об’єкти або показники датчиків.
2D List – Список списків; ідеально підходить для представлення рядків, сіток або табличних даних.
Tuple – Фіксована послідовність значень, яку не можна змінити; корисно для згрупованих, незмінних даних.
Оголошення та присвоєння змінної#
Щоб створити змінну, просто присвоїте значення її імені за допомогою оператора =:
distance = 100
Під час найменування змінної необхідно дотримуватися таких правил:
Ім’я не може містити спеціальні символи (наприклад, знак оклику).
Ім’я не може починатися з цифри.
Ім’я не може містити пробіли.
Назва не може бути зарезервованим словом у VEXcode (наприклад, Drivetrain).
Local Variables#
Локальні змінні визначені всередині функції або блоку коду. Вони доступні лише в межах області видимості цієї функції або блоку та невидимі поза нею.
def show_local():
# This variable only exists inside this function.
message = "I'm local!"
controller.screen.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.
controller.screen.print(message)
controller.screen.next_row()
show_global()
# And you can access 'message' outside a function.
controller.screen.print(message)
За замовчуванням, присвоєння значення змінній всередині функції створює локальну змінну. Щоб змінити глобальну змінну всередині функції, її необхідно явно оголосити за допомогою ключового слова 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
controller.screen.print(f"Count: {count}")
controller.screen.next_row()
increase_count()
increase_count()
Типи даних#
Змінні Python можуть зберігати різні типи даних, кожен з яких підходить для різних випадків використання. Нижче наведено найпоширеніші типи:
Integer#
Ціле число – це додатне або від’ємне число.
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#
Число з плаваючою комою – це десяткове число.
# Store a value with decimal points.
raw_value = 0.88
# Print the decimal value as a percentage.
controller.screen.print(raw_value * 100, "%")
String#
Рядок – це послідовність символів, яка зазвичай використовується для тексту.
# Set the variable to a string then print the string.
message = "Ready!"
controller.screen.print(message)
Примітка: Рядок завжди має бути укладений у лапки, одинарні ( ’ ) або подвійні ( ” ). Ви можете використовувати будь-який стиль, але початковий та кінцевий лапки повинні збігатися.
Boolean#
Логічне значення представляє значення True або 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...")
Булеві значення можна змінити в будь-який момент проекту.
# 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 представляє відсутність значення в 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#
Діапазон – це послідовність чисел, яка зазвичай використовується в циклах для генерації числових послідовностей. Вона має такий формат:
range(start, stop, step)
Компоненти |
Опис |
|---|---|
|
Необов’язково. Початкове значення є включним (послідовність починається тут). Значення за замовчуванням — 0. |
|
Значення зупинки є виключним (послідовність зупиняється перед цим числом). |
|
Необов’язково. Крок визначає, наскільки кожне число збільшується (або зменшується). Значення за замовчуванням — 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#
Список зберігає групу елементів в одній змінній. Ви можете додавати елементи, видаляти їх, змінювати їх або використовувати кожен елемент по одному у своєму проєкті. Списки корисні, коли потрібно зберігати пов’язані значення разом, такі як показники датчиків, кольори або назви об’єктів. Списки створюються за допомогою квадратних дужок [].
# 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()
Використовуйте append , щоб додати елементи до списку.
# 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#
Двовимірний список або список списків зазвичай використовується для представлення сіток, таблиць або матриць. Кожен підсписок представляє рядок або певну групу даних.
# 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()
Ви можете змінювати окремі елементи або навіть цілі підсписки в двовимірному списку:
# 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#
Кортеж – це послідовність елементів, які не можна змінити після їх створення. Вони часто використовуються для групування пов’язаних значень.
# Define a tuple.
set_1 = (100, "Left")
# Print the tuple.
controller.screen.print(set_1)
Кортежі створюються за допомогою дужок () , а не квадратних дужок [].