Variabelen#

Invoering#

Variabelen slaan gegevens op en stellen je in staat deze te hergebruiken en te manipuleren in je programma. Python is een dynamisch getypeerde taal, wat betekent dat je het type van een variabele niet expliciet hoeft te declareren. In plaats daarvan wordt het type automatisch afgeleid op basis van de waarde die eraan is toegekend. Bijvoorbeeld:

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

Python is bovendien sterk getypeerd, wat betekent dat je geen bewerkingen kunt uitvoeren op incompatibele gegevenstypen zonder ze expliciet te converteren. Bijvoorbeeld:

red_tiles = 2                       # red_tiles is an integer
green_tiles = "4"                   # green_tiles is a string
result = red_tiles + green_tiles    # Creates a TypeError

Om dergelijke problemen op te lossen, moet u de gegevenstypen, indien nodig, expliciet converteren:

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

Deze API legt veelvoorkomende variabeletypen in Python uit. Hoewel het geen complete lijst is, behandelt het de typen die je in de praktijk waarschijnlijk het meest zult gebruiken.

  • Lokale variabelen – Gedeclareerd binnen een functie en alleen gebruikt binnen dat bereik; het meest geschikt voor tijdelijke of geïsoleerde waarden.

  • Globale variabelen – Deze worden buiten elke functie gedeclareerd en in het hele project gebruikt; handig voor het delen van gegevens tussen functies.

  • Integer – Hele getallen die gebruikt worden voor tellen, afstanden of alles zonder decimalen.

  • Float – Getallen met decimalen, handig voor precieze metingen of berekeningen.

  • String – Tekstwaarden, gebruikt voor berichten, labels of het weergeven van leesbare uitvoer.

  • Booleaanse waarde – True of False waarden voor logica en besluitvorming.

  • NoneType – Geeft de afwezigheid van een waarde in Python aan.

  • Bereik – Genereert automatisch reeksen getallen, meestal gebruikt in lussen.

  • Lijst – Een veranderlijke verzameling items; geschikt voor het opslaan van groepen waarden zoals objecten of sensorwaarden.

  • 2D Lijst – Een lijst van lijsten; ideaal voor het weergeven van rijen, roosters of tabelachtige gegevens.

  • Tuple – Een vaste reeks waarden die niet kunnen worden gewijzigd; handig voor gegroepeerde, onveranderlijke gegevens.

Een variabele declareren en toewijzen#

Om een ​​variabele aan te maken, wijs je eenvoudigweg een waarde toe aan een naam met behulp van de operator =:

distance = 3

Bij het benoemen van een variabele moeten de volgende regels in acht worden genomen:

  • De naam mag geen speciale tekens bevatten (bijvoorbeeld een uitroepsteken).

  • De naam mag niet met een cijfer beginnen.

  • De naam mag geen spaties bevatten.

  • De naam mag geen gereserveerd woord zijn in VEXcode (bijvoorbeeld ‘robot’).

Local Variables#

Lokale variabelen worden gedefinieerd binnen een functie of codeblok. Ze zijn alleen toegankelijk binnen het bereik van die functie of dat blok en zijn niet zichtbaar daarbuiten.

def show_local():
    # This variable only exists inside this function
    message = "I'm local!" 
    console.print(message)

show_local()

Lokale variabelen worden vaak gebruikt om tijdelijke waarden op te slaan die alleen relevant zijn binnen een specifieke functie of een deel van het programma.

Global Variables#

Globale variabelen worden gedefinieerd buiten elke functie of codeblok. Ze kunnen overal in het programma worden benaderd en gelezen, ook binnen functies.

Let op: Een globale variabele kan overal in je project worden gebruikt. Dit kan handig zijn, maar het kan het ook moeilijker maken om bugs te vinden. Als de waarde verandert, moet je mogelijk veel delen van het project controleren om te zien waar de wijziging is opgetreden. Gebruik een lokale variabele wanneer slechts één functie de waarde nodig heeft.

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

Standaard wordt een variabele binnen een functie die een waarde krijgt toegewezen, een lokale variabele. Om een ​​globale variabele binnen een functie te wijzigen, moet je deze expliciet declareren met het trefwoord 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()

Soorten gegevens#

Python-variabelen kunnen verschillende soorten gegevens opslaan, elk geschikt voor verschillende toepassingen. Hieronder staan ​​de meest gebruikte typen:

Integer#

Een geheel getal is een positief of negatief getal.

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#

Een float is een getal met een decimale punt.

# Store a value with decimal points
raw_value = 0.88

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

String#

Een string is een reeks tekens, die gewoonlijk voor tekst wordt gebruikt.

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

Let op: Een tekenreeks moet altijd tussen overeenkomende aanhalingstekens staan, enkelvoudig (’) of dubbel (”). Je kunt beide stijlen gebruiken, maar de openings- en sluitingsaanhalingstekens moeten overeenkomen.

Boolean#

Een Booleaanse waarde vertegenwoordigt True onwaar) of False onwaar).

# 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...")

Booleaanse waarden kunnen op elk moment in het project worden gewijzigd.

# 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 staat in Python voor de afwezigheid van een waarde.

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

Een bereik is een reeks getallen, die vaak in lussen wordt gebruikt om numerieke reeksen te genereren. Het heeft de volgende structuur:

range(start, stop, step)

Onderdelen

Beschrijving

start

Optioneel. De startwaarde is inclusief (de reeks begint hier). De standaardwaarde is 0.

stop

De stopwaarde is exclusief (de reeks stopt vóór dit getal).

step

Optioneel. De stapgrootte bepaalt met hoeveel elk getal toeneemt (of afneemt). De standaardwaarde is 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#

Een lijst slaat een groep items op in één variabele. Je kunt items toevoegen, verwijderen, wijzigen of elk item afzonderlijk gebruiken in je project. Lijsten zijn handig wanneer je gerelateerde waarden bij elkaar wilt houden, zoals sensorwaarden, kleuren of objectnamen. Lijsten worden gemaakt met behulp van vierkante haken [].

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

Gebruik append om items aan een lijst toe te voegen.

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

Een 2D-lijst, of lijst van lijsten, wordt vaak gebruikt om roosters, tabellen of matrices weer te geven. Elke sublijst vertegenwoordigt een rij of een specifieke groepering van gegevens.

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

Je kunt specifieke elementen of zelfs complete sublijsten binnen een 2D-lijst wijzigen:

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

Een tuple is een reeks items die niet meer gewijzigd kunnen worden nadat ze zijn aangemaakt. Ze worden vaak gebruikt om gerelateerde waarden te groeperen.

# Define a tuple
set_1 = (3, "Left")

# Print the tuple
console.print(set_1)

Tupels worden gemaakt met behulp van haakjes () in plaats van vierkante haken [].