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_tiles = 2                       # red_tiles is an integer
green_tiles = "4"                   # green_tiles is a string
result = red_tiles + green_tiles    # Creates a TypeError

Tällaisten ongelmien ratkaisemiseksi sinun on muunnettava tyypit erikseen, jos se on tarkoituksenmukaista:

red_tiles = 2       # red_tiles is an integer
green_tiles = "4"   # green_tiles is a string

# Convert green_tiles to an integer before adding
result = int(green_tiles) + red_tiles

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 – True tai False arvoa 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 = 3

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. robotti).

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)

show_local()

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()

show_global()
# And you can access 'message' outside a function
console.print(message)

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))

increase_count()
console.new_line()
increase_count()

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.

steps = 3

# Drive forward for the variable value in steps
robot.drive_for(FORWARD, steps, STEPS)

# Add to the variable and drive forward the new value
wait(1, SECONDS)
steps = steps + 1
robot.drive_for(FORWARD, steps, STEPS)

Float#

Liukuluku on desimaaliluku.

# Store a value with decimal points
raw_value = 0.88

# Print the decimal value as a percentage
console.print(raw_value * 100, "%")

String#

Merkkijono on merkkijono, jota käytetään yleisesti tekstissä.

# Set the variable to a string then print the string
message = "Ready!"
console.print(message)

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.

# 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...")

Totuusarvoja voidaan muuttaa missä tahansa projektin vaiheessa.

# 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)

NoneType#

NoneType edustaa arvon puuttumista Pythonissa.

# 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))

Range#

Väliö on numerosarja, jota käytetään yleisesti silmukoissa numeeristen sekvenssien luomiseen. Se noudattaa muotoa:

range(start, stop, step)

Komponentit

Kuvaus

start

Valinnainen. Aloitusarvo on inklusiivinen (sekvenssi alkaa tästä). Oletusarvo on 0.

stop

Pysäytysarvo on poissulkeva (sekvenssi pysähtyy ennen tätä numeroa).

step

Valinnainen. Askel määrittää, kuinka paljon kukin luku kasvaa (tai pienenee). Oletusarvo on 1.

# Drive and turn 4 times to move in a square
for index in range(4):
    robot.drive_for(FORWARD, 1, STEPS)
    robot.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
    console.print(index)
    console.new_line()

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 [].

# 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()

Käytä append lisätäksesi kohteita luetteloon.

# 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()

2D List#

2D-listaa eli listojen listaa käytetään yleisesti ruudukoiden, taulukoiden tai matriisien esittämiseen. Jokainen alilista edustaa riviä tai tiettyä tietoryhmää.

# 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()

Voit muokata tiettyjä elementtejä tai jopa kokonaisia ​​alilistoja 2D-listan sisällä:

# 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])

Tuple#

Tuple (tuple) on joukko alkioita, joita ei voida muuttaa luomisen jälkeen. Niitä käytetään usein ryhmittelemään toisiinsa liittyviä arvoja.

# Define a tuple
set_1 = (3, "Left")

# Print the tuple
console.print(set_1)

Tuplet luodaan käyttämällä sulkeita () hakasulkeiden [] sijaan.