Variablen#
Einführung#
Variablen speichern Daten und ermöglichen deren Wiederverwendung und Bearbeitung im gesamten Programm. Python ist eine dynamisch typisierte Sprache, das heißt, der Typ einer Variablen muss nicht explizit deklariert werden. Stattdessen wird der Typ automatisch anhand des zugewiesenen Werts abgeleitet. Zum Beispiel:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Python ist außerdem stark typisiert, was bedeutet, dass Sie keine Operationen mit inkompatiblen Datentypen durchführen können, ohne diese explizit zu konvertieren. Zum Beispiel:
red_blocks = 2 # red_blocks is an integer
blue_blocks = "4" # blue_blocks is a string
result = red_blocks + blue_blocks # Creates a TypeError
Um solche Probleme zu beheben, müssen Sie die Datentypen gegebenenfalls explizit konvertieren:
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
Diese API erklärt gängige Variablentypen in Python. Die Liste ist zwar nicht vollständig, deckt aber die Typen ab, die Sie in der Praxis am häufigsten verwenden werden.
Lokale Variablen – Werden innerhalb einer Funktion deklariert und nur innerhalb dieses Gültigkeitsbereichs verwendet; am besten geeignet für temporäre oder isolierte Werte.
Globale Variablen – Werden außerhalb jeder Funktion deklariert und im gesamten Projekt verwendet; gut geeignet, um Daten zwischen Funktionen auszutauschen.
Ganzzahl – Ganze Zahlen, die zum Zählen, für Entfernungen oder für alles ohne Dezimalstellen verwendet werden.
Float – Zahlen mit Dezimalstellen, nützlich für präzise Messungen oder Berechnungen.
String – Textwerte, die für Meldungen, Beschriftungen oder die Anzeige lesbarer Ausgaben verwendet werden.
Boolean –
TrueoderFalseWerte für Logik und Entscheidungsfindung.NoneType – Stellt das Fehlen eines Wertes in Python dar.
Range – Erzeugt automatisch Zahlenfolgen, die am häufigsten in Schleifen verwendet werden.
Liste – Eine veränderliche Sammlung von Elementen; gut geeignet zum Speichern von Wertegruppen wie Objekten oder Sensormesswerten.
2D Liste – Eine Liste von Listen; ideal zur Darstellung von Zeilen, Rastern oder tabellenartigen Daten.
Tupel – Eine feste Folge von Werten, die nicht verändert werden kann; nützlich für gruppierte, unveränderliche Daten.
Deklarieren und Zuweisen einer Variablen#
Um eine Variable zu erstellen, weisen Sie ihr einfach einen Wert mit dem Operator = zu:
distance = 100
Bei der Benennung einer Variablen müssen folgende Regeln beachtet werden:
Der Name darf keine Sonderzeichen enthalten (z. B. kein Ausrufezeichen).
Der Name darf nicht mit einer Zahl beginnen.
Der Name darf keine Leerzeichen enthalten.
Der Name darf kein reserviertes Wort in VEXcode sein (z. B. Drivetrain).
Local Variables#
Lokale Variablen werden innerhalb einer Funktion oder eines Codeblocks definiert. Sie sind nur innerhalb des Gültigkeitsbereichs dieser Funktion oder dieses Blocks zugänglich und außerhalb davon nicht sichtbar.
def show_local():
# This variable only exists inside this function
message = "I'm local!"
brain.screen.print(message)
show_local()
Lokale Variablen werden häufig verwendet, um temporäre Werte zu speichern, die nur innerhalb einer bestimmten Funktion oder eines bestimmten Teils des Programms relevant sind.
Global Variables#
Globale Variablen werden außerhalb jeglicher Funktionen oder Blöcke definiert. Sie können überall im Programm, auch innerhalb von Funktionen, aufgerufen und gelesen werden.
Hinweis: Eine globale Variable kann überall im Projekt verwendet werden. Das kann hilfreich sein, erschwert aber auch die Fehlersuche. Ändert sich der Wert, müssen Sie möglicherweise viele Teile des Projekts überprüfen, um die Änderung zu finden. Verwenden Sie eine lokale Variable, wenn nur eine Funktion den Wert benötigt.
# 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)
Standardmäßig erzeugt die Zuweisung eines Wertes zu einer Variablen innerhalb einer Funktion eine lokale Variable. Um eine globale Variable innerhalb einer Funktion zu ändern, müssen Sie sie explizit mit dem Schlüsselwort global deklarieren.
# 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()
Datentypen#
Python-Variablen können verschiedene Datentypen speichern, die jeweils für unterschiedliche Anwendungsfälle geeignet sind. Im Folgenden sind die gebräuchlichsten Typen aufgeführt:
Integer#
Eine ganze Zahl ist eine positive oder negative Zahl.
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#
Eine Gleitkommazahl ist eine Dezimalzahl.
# Store a value with decimal points
raw_value = 0.88
# Print the decimal value as a percentage
print(raw_value * 100, "%")
String#
Eine Zeichenkette ist eine Folge von Zeichen, die üblicherweise für Texte verwendet wird.
# Set the variable to a string then print the string
message = "Ready!"
brain.screen.print(message)
Hinweis: Eine Zeichenkette muss immer in passende Anführungszeichen eingeschlossen werden, entweder in einfache (’) oder doppelte (”). Sie können beide Stile verwenden, aber die öffnenden und schließenden Anführungszeichen müssen übereinstimmen.
Boolean#
Ein Boolescher Wert repräsentiert True (Falsch) oder False Falsch).
# 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...")
Boolesche Werte können zu jedem Zeitpunkt im Projekt geändert werden.
# 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 repräsentiert das Fehlen eines Wertes in Python.
# 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#
Ein Bereich ist eine Zahlenfolge, die häufig in Schleifen verwendet wird, um Zahlenfolgen zu erzeugen. Er hat folgendes Format:
range(start, stop, step)
Komponenten |
Beschreibung |
|---|---|
|
Optional. Der Startwert ist inklusive (die Sequenz beginnt hier). Der Standardwert ist 0. |
|
Der Stoppwert ist exklusiv (die Sequenz endet vor dieser Zahl). |
|
Optional. Dieser Schritt bestimmt, um wie viel jede Zahl erhöht (oder verringert) wird. Der Standardwert ist 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#
Eine Liste speichert eine Gruppe von Elementen in einer Variable. Sie können Elemente hinzufügen, entfernen, ändern oder jedes Element einzeln in Ihrem Projekt verwenden. Listen sind nützlich, wenn Sie zusammengehörige Werte wie Sensorwerte, Farben oder Objektnamen zusammenhalten möchten. Listen werden mit eckigen Klammern erstellt [].
# 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()
Verwenden Sie append , um Elemente zu einer Liste hinzuzufügen.
# 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#
Eine 2D-Liste, oder Liste von Listen, wird häufig zur Darstellung von Rastern, Tabellen oder Matrizen verwendet. Jede Unterliste repräsentiert eine Zeile oder eine bestimmte Datengruppe.
# 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()
Sie können einzelne Elemente oder sogar ganze Unterlisten innerhalb einer 2D-Liste ändern:
# 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#
Ein Tupel ist eine Folge von Elementen, die nach ihrer Erstellung nicht mehr verändert werden können. Tupel werden häufig verwendet, um zusammengehörige Werte zu gruppieren.
# Define a tuple
set_1 = (100, "Left")
# Print the tuple
brain.screen.print(set_1)
Tupel werden mit runden Klammern () anstatt mit eckigen Klammern [] erstellt.