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:
red_disks = 2 # red_disks is an integer
green_disks = "4" # green_disks is a string
result = red_disks + green_disks # Creates a TypeError
Tällaisten ongelmien ratkaisemiseksi sinun on muunnettava tyypit erikseen, jos se on tarkoituksenmukaista:
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
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!"
console.print(message)
def main():
show_local()
# Start threads — Do not delete
start_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
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)
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
console.print("Count: {}".format(count))
def main():
increase_count()
console.new_line()
increase_count()
# Start threads — Do not delete
start_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.
# 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#
Liukuluku on desimaaliluku.
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#
Merkkijono on merkkijono, jota käytetään yleisesti tekstissä.
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)
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:
console.print("Package delivered!")
else:
console.print("Delivering...")
# Start threads — Do not delete
start_thread(main)
Totuusarvoja voidaan muuttaa missä tahansa projektin vaiheessa.
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#
NoneType edustaa arvon puuttumista Pythonissa.
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#
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. |
# 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#
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
console.print(index)
console.new_line()
# Start threads — Do not delete
start_thread(main)
Käytä append -komentoa 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
console.print(index)
console.new_line()
# Start threads — Do not delete
start_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:
console.print(element, ", ")
console.new_line()
# Start threads — Do not delete
start_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
console.print(matrix[0])
# Start threads — Do not delete
start_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
console.print(set_1)
# Start threads — Do not delete
start_thread(main)
Tuplet luodaan käyttämällä sulkeita () hakasulkeiden [] sijaan.