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_blocks = 2 # red_blocks is an integer
blue_blocks = "4" # blue_blocks is a string
result = red_blocks + blue_blocks # Creates a TypeError
Om dergelijke problemen op te lossen, moet u de gegevenstypen, indien nodig, expliciet converteren:
red_blocks = 2 # red_blocks is an integer
blue_blocks = "4" # blue_blocks is a string
# Convert blue_blocks to an integer before adding
result = int(blue_blocks) + red_blocks
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 –
TrueofFalsewaarden 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 = 100
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 (bijv. Drivetrain).
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!"
brain.screen.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
brain.screen.print(message)
show_global()
# And you can access 'message' outside a function
brain.screen.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
brain.screen.print("Count: {}".format(count))
increase_count()
brain.screen.next_row()
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.
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)
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
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!"
brain.screen.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:
brain.screen.print("Package delivered!")
else:
brain.screen.print("Delivering...")
Booleaanse waarden kunnen op elk moment in het project worden gewijzigd.
# Print the value of the delivered variable
delivered = True
brain.screen.print(delivered)
wait(2,SECONDS)
# Clear the screen and print the value of the variable again
brain.screen.clear_screen()
delivered = False
brain.screen.print(delivered)
NoneType#
NoneType staat in Python voor de afwezigheid van een waarde.
# Write what the robot's task should be as a string
current_task = None
# Check if a task is assigned
if current_task is None:
brain.screen.print("No task!")
else:
brain.screen.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 |
|---|---|
|
Optioneel. De startwaarde is inclusief (de reeks begint hier). De standaardwaarde is 0. |
|
De stopwaarde is exclusief (de reeks stopt vóór dit getal). |
|
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):
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.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
brain.screen.print(index)
brain.screen.next_row()
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
brain.screen.print(index)
brain.screen.next_row()
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
brain.screen.print(index)
brain.screen.next_row()
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:
brain.screen.print(element, ", ")
brain.screen.next_row()
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
brain.screen.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 = (100, "Left")
# Print the tuple
brain.screen.print(set_1)
Tupels worden gemaakt met behulp van haakjes () in plaats van vierkante haken [].