Muuttujat#
Johdanto#
Muuttujat tallentavat dataa ja mahdollistavat sen uudelleenkäytön ja käsittelyn koko ohjelmassasi. Python on dynaamisesti tyypitetty kieli, mikä tarkoittaa, että sinun ei tarvitse määrittää muuttujan tyyppiä eksplisiittisesti. Sen sijaan tyyppi päätellään automaattisesti sille annetun arvon perusteella. Esimerkiksi:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Python on myös vahvasti tyypitetty, mikä tarkoittaa, että yhteensopimattomille tyypeille ei voi suorittaa toimintoja muuntamatta niitä erikseen. Esimerkiksi:
blocks = 2 # blocks is an integer
disks = "4" # disks is a string
result = blocks + disks # Creates a TypeError
Tällaisten ongelmien ratkaisemiseksi sinun on muunnettava tyypit erikseen, jos se on tarkoituksenmukaista:
blocks = 2 # blocks is an integer
disks = "4" # disks is a string
# Convert disks to an integer before adding
result = int(disks) + blocks
Tämä API selittää yleisiä Pythonin muuttujatyyppejä. Vaikka luettelo ei olekaan tyhjentävä, se kattaa tyypit, joita todennäköisimmin käytät käytännössä.
Paikalliset muuttujat – Määritetään funktion sisällä ja käytetään vain sen laajuuden sisällä; parhaiten väliaikaisille tai yksittäisille arvoille.
Globaalit muuttujat – Esitetään minkä tahansa funktion ulkopuolella ja käytetään koko projektin ajan; hyvä tiedon jakamiseen funktioiden välillä.
Integer – Kokonaisluvut, joita käytetään laskemiseen, etäisyyksien määrittämiseen tai mihin tahansa ilman desimaaleja.
Float – Desimaalipilkulla varustettuja numeroita, jotka ovat hyödyllisiä tarkkoihin mittauksiin tai laskelmiin.
Merkkijono – Tekstiarvot, joita käytetään viesteissä, otsikoissa tai luettavan tulosteen näyttämisessä.
Totuusarvo –
TruetaiFalsearvoa logiikkaa ja päätöksentekoa varten.NoneType – Ilmaisee arvon puuttumista Pythonissa.
Alue – Luo automaattisesti numerosarjoja, käytetään yleisimmin silmukoissa.
Lista – Muutettava kokoelma kohteita; sopii hyvin arvoryhmien, kuten objektien tai anturilukemien, tallentamiseen.
2D-lista – Luetteloluettelo; ihanteellinen rivien, ruudukoiden tai taulukkomaisen datan esittämiseen.
Tuple – Kiinteä arvojen sarja, jota ei voi muuttaa; hyödyllinen ryhmitellylle, muuttumattomalle datalle.
Muuttujan määrittäminen ja sijoittaminen#
Muuttujan luomiseksi anna sille arvo käyttämällä operaattoria =:
distance = 100
Muuttujaa nimettäessä on noudatettava seuraavia sääntöjä:
Nimessä ei saa olla erikoismerkkejä (esim. huutomerkkiä).
Nimi ei voi alkaa numerolla.
Nimessä ei saa käyttää välilyöntejä.
Nimi ei voi olla varattu sana VEX-koodissa (esim. Drivetrain).
Local Variables#
Paikalliset muuttujat määritellään funktion tai koodilohkon sisällä. Ne ovat käytettävissä vain kyseisen funktion tai lohkon sisällä, eivätkä ne ole näkyvissä sen ulkopuolella.
def show_local():
# This variable only exists inside this function
message = "I'm local!"
brain.print(message)
def main():
show_local()
# VR threads — Do not delete
vr_thread(main)
Paikallisia muuttujia käytetään yleisesti sellaisten väliaikaisten arvojen tallentamiseen, jotka ovat merkityksellisiä vain tietyssä funktiossa tai ohjelman osassa.
Global Variables#
Globaalit muuttujat määritellään minkä tahansa funktion tai lohkon ulkopuolella. Niitä voi käyttää ja lukea mistä tahansa ohjelmassa, myös funktioiden sisältä.
Huomautus: Globaalia muuttujaa voidaan käyttää missä tahansa projektissasi. Tästä voi olla hyötyä, mutta se voi myös vaikeuttaa virheiden löytämistä. Jos arvo muuttuu, sinun on ehkä tarkistettava useita osia projektista nähdäksesi, missä se on muuttunut. Käytä paikallista muuttujaa, kun vain yksi funktio tarvitsee arvon.
# The variable is defined outside a function
message = "I'm global!"
def show_global():
# You can access 'message' inside a function
brain.print(message)
brain.new_line()
def main():
show_global()
# And you can access 'message' outside a function
brain.print(message)
# VR threads — Do not delete
vr_thread(main)
Oletusarvoisesti funktion sisällä olevalle muuttujalle arvon määrittäminen luo paikallisen muuttujan. Jos haluat muokata globaalia muuttujaa funktion sisällä, sinun on määriteltävä se eksplisiittisesti käyttämällä avainsanaa 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.print("Count: {}".format(count))
brain.new_line()
def main():
increase_count()
increase_count()
# VR threads — Do not delete
vr_thread(main)
Tietotyypit#
Python-muuttujiin voidaan tallentaa erityyppisiä tietoja, joista jokainen sopii erilaisiin käyttötapauksiin. Alla on lueteltu yleisimmin käytetyt tyypit:
Integer#
Kokonaisluku on positiivinen tai negatiivinen luku.
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)
# VR threads — Do not delete
vr_thread(main)
Float#
Liukuluku on desimaaliluku.
def main():
# Store a value with decimal points
raw_value = 0.88
# Print the decimal value as a percentage
brain.print(raw_value * 100, "%")
String#
Merkkijono on merkkijono, jota käytetään yleisesti tekstissä.
def main():
# Set the variable to a string then print the string
message = "Ready!"
brain.print(message)
# VR threads — Do not delete
vr_thread(main)
Huomautus: Merkkijonon on aina oltava lainausmerkkien sisällä, jotka ovat joko yksinkertaisia (’) tai kaksinkertaisia (”). Voit käyttää kumpaakin tyyliä, mutta aloittavan ja päättävän merkin on oltava samat.
Boolean#
Totuusarvo edustaa arvoja True tai False.
def main():
# Set the state of the variable
delivered = False
# Print different messages depending on the Boolean.
if delivered:
brain.print("Package delivered!")
else:
brain.print("Delivering...")
# VR threads — Do not delete
vr_thread(main)
Totuusarvoja voidaan muuttaa missä tahansa projektin vaiheessa.
def main():
# Print the value of the delivered variable
delivered = True
brain.print(delivered)
wait(2,SECONDS)
# Clear the screen and print the value of the variable again
brain.clear()
delivered = False
brain.print(delivered)
# VR threads — Do not delete
vr_thread(main)
NoneType#
NoneType edustaa arvon puuttumista Pythonissa.
def main():
# 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.print("No task!")
else:
brain.print("Task: {}".format(current_task))
# VR threads — Do not delete
vr_thread(main)
Range#
Väliö on numerosarja, jota käytetään yleisesti silmukoissa numeeristen sekvenssien luomiseen. Se noudattaa muotoa:
range(start, stop, step)
Komponentit |
Kuvaus |
|---|---|
|
Valinnainen. Aloitusarvo on inklusiivinen (sekvenssi alkaa tästä). Oletusarvo on 0. |
|
Pysäytysarvo on poissulkeva (sekvenssi pysähtyy ennen tätä numeroa). |
|
Valinnainen. Askel määrittää, kuinka paljon kukin luku kasvaa (tai pienenee). Oletusarvo on 1. |
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, DEGREES)
# VR threads — Do not delete
vr_thread(main)
def main():
# Count by 2 starting at 1 and ending before 12
for index in range(1, 12, 2):
# Print the values with each loop
brain.print(index)
brain.new_line()
# VR threads — Do not delete
vr_thread(main)
List#
Lista tallentaa joukon alkioita yhteen muuttujaan. Voit lisätä alkioita, poistaa niitä, muuttaa niitä tai käyttää kutakin alkiota yksi kerrallaan projektissasi. Listat ovat hyödyllisiä, kun haluat pitää toisiinsa liittyvät arvot yhdessä, kuten anturilukemat, värit tai objektien nimet. Listat luodaan käyttämällä hakasulkeita [].
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
brain.print(index)
brain.new_line()
# VR threads — Do not delete
vr_thread(main)
Käytä append lisätäksesi kohteita luetteloon.
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
brain.print(index)
brain.new_line()
# VR threads — Do not delete
vr_thread(main)
2D List#
2D-listaa eli listojen listaa käytetään yleisesti ruudukoiden, taulukoiden tai matriisien esittämiseen. Jokainen alilista edustaa riviä tai tiettyä tietoryhmää.
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:
brain.print(element, ", ")
brain.new_line()
# VR threads — Do not delete
vr_thread(main)
Voit muokata tiettyjä elementtejä tai jopa kokonaisia alilistoja 2D-listan sisällä:
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
brain.print(matrix[0])
# VR threads — Do not delete
vr_thread(main)
Tuple#
Tuple (tuple) on joukko alkioita, joita ei voida muuttaa luomisen jälkeen. Niitä käytetään usein ryhmittelemään toisiinsa liittyviä arvoja.
def main():
# Define a tuple
set_1 = (100, "Left")
# Print the tuple
brain.print(set_1)
# VR threads — Do not delete
vr_thread(main)
Tuplet luodaan käyttämällä sulkeita () hakasulkeiden [] sijaan.