Változók#
Bevezetés#
A változók tárolják az adatokat, és lehetővé teszik azok újrafelhasználását és manipulálását a programban. A Python egy dinamikusan típusozott nyelv, ami azt jelenti, hogy nem kell explicit módon deklarálni a változó típusát. Ehelyett a típus automatikusan kikövetkezteti a hozzárendelt érték alapján. Például:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
A Python erősen típusos, ami azt jelenti, hogy nem lehet műveleteket végrehajtani inkompatibilis típusokon anélkül, hogy explicit módon konvertálnánk őket. Például:
red_disks = 2 # red_disks is an integer
green_disks = "4" # green_disks is a string
result = red_disks + green_disks # Creates a TypeError
Az ilyen problémák megoldásához explicit módon át kell konvertálni a típusokat, ha szükséges:
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
Ez az API a Pythonban gyakori változótípusokat ismerteti. Bár nem teljes lista, lefedi azokat a típusokat, amelyeket a gyakorlatban a legnagyobb valószínűséggel használsz.
Lokális változók – Függvényen belül deklarálva, és csak az adott hatókörön belül használva; ideiglenes vagy elszigetelt értékekhez a legmegfelelőbb.
Globális változók – Függvényeken kívül deklarálhatók, és a projekt során használják őket; jól használhatók függvények közötti adatmegosztásra.
Integer – Egész számok, amelyeket számlálásra, távolságokra vagy tizedesjegyek nélküli bármilyen más értékre használnak.
Float – Tizedesvesszővel ellátott számok, amelyek hasznosak a pontos mérésekhez vagy számításokhoz.
Karakterlánc – Szöveges értékek, üzenetekhez, címkékhez vagy olvasható kimenet megjelenítéséhez használatos.
Boolean –
TruevagyFalseérték a logikához és a döntéshozatalhoz.NoneType – Egy érték hiányát jelöli Pythonban.
Tartomány – Automatikusan számsorozatokat generál, leggyakrabban ciklusokban használják.
Lista – Változtatható elemgyűjtemény; alkalmas értékcsoportok, például objektumok vagy érzékelőértékek tárolására.
2D lista – Listák listája; ideális sorok, rácsok vagy táblázatszerű adatok ábrázolására.
Tuple – Egy rögzített értéksorozat, amely nem módosítható; hasznos csoportosított, változatlan adatok esetén.
Változó deklarálása és értékadása#
Változó létrehozásához egyszerűen rendeljünk hozzá egy értéket a névhez a = operátorral:
distance = 100
Változók elnevezésekor a következő szabályokat kell betartani:
A név nem tartalmazhat speciális karaktereket (pl. felkiáltójelet).
A név nem kezdődhet számmal.
A név nem tartalmazhat szóközöket.
A név nem lehet foglalt szó a VEXkódban (pl. Drivetrain).
Local Variables#
A lokális változók egy függvényen vagy kódblokkon belül vannak definiálva. Csak az adott függvény vagy blokk hatókörén belül érhetők el, azon kívül nem láthatók.
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)
A lokális változókat általában olyan ideiglenes értékek tárolására használják, amelyek csak egy adott függvényen vagy a program egy részén belül relevánsak.
Global Variables#
A globális változók bármely függvényen vagy blokkon kívül definiálhatók. Hozzáférhetők és olvashatók a program bárhonnan, beleértve a függvényeken belül is.
Megjegyzés: A globális változó a projekted bármely pontján használható. Ez hasznos lehet, de a hibák megtalálását is megnehezítheti. Ha az érték megváltozik, akkor lehet, hogy a projekt számos részét ellenőrizned kell, hogy lásd, hol változott. Használj lokális változót, ha csak egy függvénynek van szüksége az értékre.
# 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)
Alapértelmezés szerint egy függvényen belüli változóhoz érték hozzárendelése lokális változót hoz létre. Egy globális változó módosításához egy függvényen belül explicit módon deklarálni kell azt a global kulcsszó használatával.
# 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)
Adattípusok#
A Python változók különféle típusú adatokat tárolhatnak, amelyek mindegyike más-más felhasználási esetekre alkalmas. Az alábbiakban a leggyakrabban használt típusok láthatók:
Integer#
Az egész szám pozitív vagy negatív szám.
# 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#
A float egy tizedesvesszős szám.
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#
A karakterlánc egy karaktersorozat, amelyet általában szövegekhez használnak.
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)
Megjegyzés: Egy karakterláncot mindig egyező idézőjelek közé kell tenni, amelyek lehetnek egyes (’) vagy dupla (”). Bármelyik stílust használhatod, de a nyitó és záró jelnek meg kell egyeznie.
Boolean#
A Boolean True vagy False értéket jelöl.
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)
A logikai értékek a projekt bármely pontján módosíthatók.
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#
A NoneType egy érték hiányát jelöli Pythonban.
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#
A tartomány egy számsorozat, amelyet általában ciklusokban használnak numerikus sorozatok létrehozására. A formátuma a következő:
range(start, stop, step)
Alkatrészek |
Leírás |
|---|---|
|
Opcionális. A kezdőérték inkluzív (a sorozat itt kezdődik). Az alapértelmezett érték 0. |
|
A stop érték kizárja a számot (a sorozat e szám előtt megáll). |
|
Opcionális. A lépésköz határozza meg, hogy az egyes számok mennyivel növekedjenek (vagy csökkenjenek). Az alapértelmezett érték 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#
Egy lista egy csoport elemet tárol egyetlen változóban. Hozzáadhat elemeket, eltávolíthat elemeket, módosíthat elemeket, vagy egyszerre minden elemet használhat a projektben. A listák akkor hasznosak, ha a kapcsolódó értékeket, például az érzékelők által leolvasott értékeket, a színeket vagy az objektumneveket együtt szeretné tárolni. A listák szögletes zárójelek használatával hozhatók létre [].
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 paranccsal adhatsz hozzá elemeket egy listához.
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#
A 2D listákat, vagy listák listáját általában rácsok, táblázatok vagy mátrixok ábrázolására használják. Minden allista egy sort vagy egy adott adatcsoportot jelöl.
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)
Módosíthat adott elemeket vagy akár teljes allistákat egy 2D listán belül:
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#
A tuple olyan elemek sorozata, amelyek létrehozásuk után nem módosíthatók. Gyakran használják őket kapcsolódó értékek csoportosítására.
def main():
# Define a tuple
set_1 = (100, "Left")
# Print the tuple
console.print(set_1)
# Start threads — Do not delete
start_thread(main)
A tuple-k zárójelek () használatával jönnek létre szögletes zárójelek [] helyett.