Змінні#

Вступ#

Змінні зберігають дані та дозволяють вам повторно використовувати їх та маніпулювати ними протягом усієї програми. 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. Хоча список не є вичерпним, він охоплює типи, які ви, найімовірніше, використовуватимете на практиці.

  • Локальні змінні – Оголошуються всередині функції та використовуються лише в межах цієї області видимості; найкраще використовувати для тимчасових або ізольованих значень.

  • Глобальні змінні – Оголошуються поза будь-якою функцією та використовуються протягом усього проєкту; добре підходять для обміну даними між функціями.

  • Ціле число – Цілі числа, що використовуються для підрахунку, відстаней або будь-чого без десяткових знаків.

  • Float – Числа з десятковими комами, корисні для точних вимірювань або обчислень.

  • String – Текстові значення, що використовуються для повідомлень, міток або відображення читабельного виводу.

  • Boolean – True або False значення для логіки та прийняття рішень.

  • NoneType – Позначає відсутність значення в Python.

  • Діапазон – Автоматично генерує послідовності чисел, найчастіше використовуються в циклах.

  • Список – Змінна колекція елементів; добре підходить для зберігання груп значень, таких як об’єкти або показники датчиків.

  • 2D List – Список списків; ідеально підходить для представлення рядків, сіток або табличних даних.

  • Tuple – Фіксована послідовність значень, яку не можна змінити; корисно для згрупованих, незмінних даних.

Оголошення та присвоєння змінної#

Щоб створити змінну, просто присвоїте значення її імені за допомогою оператора =:

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.

# 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#

Число з плаваючою комою – це десяткове число.

# 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#

Логічне значення представляє значення 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)

Компоненти

Опис

start

Необов’язково. Початкове значення є включним (послідовність починається тут). Значення за замовчуванням — 0.

stop

Значення зупинки є виключним (послідовність зупиняється перед цим числом).

step

Необов’язково. Крок визначає, наскільки кожне число збільшується (або зменшується). Значення за замовчуванням — 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)

Кортежі створюються за допомогою дужок () , а не квадратних дужок [].