Змінні#

Вступ#

Змінні зберігають дані та дозволяють вам повторно використовувати їх і маніпулювати ними протягом усієї програми. Python — це динамічно типізована мова, тобто вам не потрібно явно оголошувати тип змінної. Натомість тип автоматично визначається на основі призначеного їй значення. Наприклад:

angle = 90           # angle is an integer
dist = "Distance: "  # dist is a string
steps = 2.5          # steps is a float

Python також має строгу типізацію, що означає, що ви не можете виконувати операції над несумісними типами без їх явного перетворення. Наприклад:

red_disks = 2                       # red_disks is an integer
green_disks = "4"                      # green_disks is a string
result = red_disks + green_disks  # Creates a TypeError

Щоб вирішити такі проблеми, потрібно явно конвертувати типи, якщо це доречно:

red_disks = 2     # red_disks is an integer
green_disks = "4" # green_disks is a string

# Convert green_disks to an integer before adding
result = int(green_disks) + red_disks

Цей 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!" 
    console.print(message)

def main():
    show_local()

# Start threads — Do not delete
start_thread(main)

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

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()

def main():
    show_global()
    # And you can access 'message' outside a function
    console.print(message)

# Start threads — Do not delete
start_thread(main)

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

def main():
    increase_count()
    console.new_line()
    increase_count()

# Start threads — Do not delete
start_thread(main)

Типи даних#

Змінні Python можуть зберігати різні типи даних, кожен з яких підходить для різних випадків використання. Нижче наведено найпоширеніші типи:

Integer#

Ціле число – це додатне або від’ємне число.

# Build Used: Super Code Base 2.0
def main():
    distance = 100

    # Move the robot forward for the variable value in mm
    drivetrain.drive_for(FORWARD, distance, MM)

    # Add to the variable and move forward the new value, 
    # for 200mm total
    wait(1, SECONDS)
    distance = distance + 100
    drivetrain.drive_for(FORWARD, distance, MM)

# Start threads — Do not delete
start_thread(main)

Float#

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

def main():
    # Store a value with decimal points
    raw_value = 0.88

    # Print the decimal value as a percentage
    console.print(raw_value * 100, "%")

# Start threads — Do not delete
start_thread(main)

String#

Рядок – це послідовність символів, яка зазвичай використовується для тексту.

def main():
    # Set the variable to a string then print the string
    message = "Ready!"
    console.print(message)

# Start threads — Do not delete
start_thread(main)

Примітка: Рядок завжди має бути укладений у лапки, одинарні (’) або подвійні (”). Ви можете використовувати будь-який стиль, але початковий та кінцевий лапки повинні збігатися.

Boolean#

Логічне значення представляє значення True або False.

def main():
    # 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...")

# Start threads — Do not delete
start_thread(main)

Булеві значення можна змінити в будь-який момент проекту.

def main():
    # 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)

# Start threads — Do not delete
start_thread(main)

NoneType#

NoneType представляє відсутність значення в Python.

def main():
    # 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))

# Start threads — Do not delete
start_thread(main)

Range#

Діапазон – це послідовність чисел, яка зазвичай використовується в циклах для генерації числових послідовностей. Вона має такий формат:

range(start, stop, step)

Компоненти

Опис

start

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

stop

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

step

Необов’язково. Крок визначає, наскільки кожне число збільшується (або зменшується). Значення за замовчуванням — 1.

# Build Used: Super Code Base 2.0
def main():
    # Drive and turn 4 times to move in a square
    for index in range(4):
        drivetrain.drive_for(FORWARD, 100, MM)
        drivetrain.turn_for(RIGHT, 90)

# Start threads — Do not delete
start_thread(main)

def main():
    # 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()

# Start threads — Do not delete
start_thread(main)

List#

Список зберігає групу елементів в одній змінній. Ви можете додавати елементи, видаляти їх, змінювати їх або використовувати кожен елемент по одному у своєму проєкті. Списки корисні, коли потрібно зберігати пов’язані значення разом, такі як показники датчиків, кольори або назви об’єктів. Списки створюються за допомогою квадратних дужок [].

def main():
    # 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()

# Start threads — Do not delete
start_thread(main)

Використовуйте append , щоб додати елементи до списку.

def main():
    # 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()

# Start threads — Do not delete
start_thread(main)

2D List#

Двовимірний список або список списків зазвичай використовується для представлення сіток, таблиць або матриць. Кожен підсписок представляє рядок або певну групу даних.

def main():
    # 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()

# Start threads — Do not delete
start_thread(main)

Ви можете змінювати окремі елементи або навіть цілі підсписки в двовимірному списку:

def main():
    # 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])

# Start threads — Do not delete
start_thread(main)

Tuple#

Кортеж – це послідовність елементів, які не можна змінити після їх створення. Вони часто використовуються для групування пов’язаних значень.

def main():
    # Define a tuple
    set_1 = (100, "Left")

    # Print the tuple
    console.print(set_1)

# Start threads — Do not delete
start_thread(main)

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