Athróga#

Réamhrá#

Stórálann athróga sonraí agus ligeann siad duit iad a athúsáid agus a ionramháil ar fud do chláir. Is teanga chlóscríofa go dinimiciúil í Python, rud a chiallaíonn nach gá duit cineál athróige a dhearbhú go sainráite. Ina áit sin, déantar an cineál a asbhaint go huathoibríoch bunaithe ar an luach a shanntar dó. Mar shampla:

angle = 90           # angle is an integer
dist = "Distance: "  # dist is a string
steps = 2.5          # steps is a float

Tá clóscríobh láidir ag Python freisin, rud a chiallaíonn nach féidir leat oibríochtaí a dhéanamh ar chineálacha neamh-chomhoiriúnacha gan iad a thiontú go sainráite. Mar shampla:

blocks = 2                       # blocks is an integer
disks = "4"                      # disks is a string
result = blocks + disks  # Creates a TypeError

Chun fadhbanna den sórt sin a réiteach, ní mór duit na cineálacha a thiontú go sainráite, más iomchuí:

blocks = 2  # blocks is an integer
disks = "4" # disks is a string

# Convert disks to an integer before adding
result = int(disks) + blocks

Míníonn an API seo cineálacha athróg coitianta i Python. Cé nach liosta uileghabhálach é, clúdaíonn sé na cineálacha is dóichí a úsáidfidh tú i gcleachtas.

  • Athróga áitiúla – Dearbhaithe laistigh de fheidhm agus úsáidte laistigh den raon feidhme sin amháin; is fearr iad le haghaidh luachanna sealadacha nó aonraithe.

  • Athróga domhanda – Dearbhaítear iad lasmuigh d’aon fheidhm agus úsáidtear iad ar fud an tionscadail; tá siad go maith chun sonraí a roinnt idir feidhmeanna.

  • Slánuimhir – Uimhreacha iomlána a úsáidtear le haghaidh comhaireamh, achair, nó aon rud gan deachúlacha.

  • Snámhphointe – Uimhreacha le pointí deachúlacha, úsáideach le haghaidh tomhais nó ríomhanna beachta.

  • Teaghrán – Luachanna téacs, a úsáidtear le haghaidh teachtaireachtaí, lipéid, nó chun aschur inléite a thaispeáint.

  • Boolean – True nó False luach le haghaidh loighic agus cinnteoireachta.

  • GanChineál – Léiríonn sé easpa luacha i Python.

  • Raon – Gineann sé seo seichimh uimhreacha go huathoibríoch, a úsáidtear den chuid is mó i lúba.

  • Liosta – Bailiúchán míreanna inathraithe; maith chun grúpaí luachanna cosúil le rudaí nó léamha braiteoirí a stóráil.

  • Liosta 2T – Liosta liostaí; oiriúnach chun sraitheanna, greillí, nó sonraí cosúil le táblaí a léiriú.

  • Tuple – Seicheamh seasta luachanna nach féidir a athrú; úsáideach le haghaidh sonraí grúpáilte, gan athrú.

Athróg a Dhearbhú agus a Shannadh#

Chun athróg a chruthú, níl le déanamh ach luach a shannadh d’ainm ag baint úsáide as an oibreoir =:

distance = 100

Agus athróg á hainmniú, ní mór cloí leis na rialacha seo a leanas:

  • Ní féidir carachtair speisialta (m.sh., pointe eascráite) a bheith san ainm.

  • Ní féidir leis an ainm tosú le huimhir.

  • Ní féidir spásanna a úsáid san ainm.

  • Ní féidir leis an ainm a bheith ina fhocal atá curtha in áirithe i VEXcode (m.sh., Drivetrain).

Local Variables#

Sainmhínítear athróga áitiúla laistigh de fheidhm nó de bhloc cóid. Ní féidir rochtain a fháil orthu ach amháin laistigh de raon feidhme na feidhme nó an bhloic sin agus ní féidir iad a fheiceáil lasmuigh de.

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)

Úsáidtear athróga áitiúla go coitianta chun luachanna sealadacha a stóráil nach bhfuil ábhartha ach laistigh de fheidhm nó de chuid den chlár.

Global Variables#

Sainmhínítear athróga domhanda lasmuigh d’aon fheidhm nó bloc. Is féidir rochtain a fháil orthu agus iad a léamh áit ar bith sa chlár, lena n-áirítear taobh istigh de fheidhmeanna.

Nóta: Is féidir athróg dhomhanda a úsáid in áit ar bith i do thionscadal. Is féidir leis seo a bheith cabhrach, ach is féidir leis fabhtanna a dhéanamh níos deacra a aimsiú freisin. Má athraíonn an luach, b’fhéidir go mbeidh ort go leor codanna den tionscadal a sheiceáil chun a fheiceáil cá n-athraíodh sé. Bain úsáid as athróg áitiúil nuair nach bhfuil an luach ag teastáil ach ó fheidhm amháin.

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

De réir réamhshocraithe, cruthaítear athróg áitiúil nuair a shanntar luach d’athróg laistigh de fheidhm. Chun athróg dhomhanda laistigh de fheidhm a mhodhnú, ní mór duit í a dhearbhú go sainráite ag baint úsáide as an eochairfhocal 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)

Cineálacha Sonraí#

Is féidir le hathróga Python cineálacha éagsúla sonraí a stóráil, agus gach ceann acu oiriúnach do chásanna úsáide éagsúla. Seo a leanas na cineálacha is coitianta a úsáidtear:

Integer#

Is uimhir dhearfach nó dhiúltach í slánuimhir.

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#

Is uimhir phointe deachúil í snámhphointe.

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#

Is sraith carachtar é teaghrán, a úsáidtear go coitianta le haghaidh téacs.

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)

Nóta: Caithfidh teaghrán a bheith i gcónaí idir comharthaí athfhriotail comhoiriúnacha, bíodh sé singil (’) nó dúbailte (”). Is féidir leat ceachtar stíl a úsáid, ach ní mór go mbeadh na comharthaí oscailte agus deiridh comhoiriúnach.

Boolean#

Seasann Booléanach do True nó 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)

Is féidir Booleans a athrú ag aon phointe sa tionscadal.

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#

Léiríonn NoneType easpa luacha i Python.

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#

Is sraith uimhreacha é raon, a úsáidtear go coitianta i lúba chun sraitheanna uimhriúla a ghiniúint. Leanann sé an fhormáid seo a leanas:

range(start, stop, step)

Comhpháirteanna

Cur síos

start

Roghnach. Tá an luach tosaigh uilechuimsitheach (tosaíonn an seicheamh anseo). Is é 0 an réamhshocrú.

stop

Tá an luach stad eisiach (stadann an seicheamh roimh an uimhir seo).

step

Roghnach. Cinneann an chéim cé mhéad a mhéadaíonn (nó a laghdaíonn) gach uimhir. Is é 1 an réamhshocrú.

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#

Stórálann liosta grúpa míreanna in aon athróg amháin. Is féidir leat míreanna a chur leis, míreanna a bhaint, míreanna a athrú, nó gach mír a úsáid ceann ar cheann i do thionscadal. Tá liostaí úsáideach nuair is mian leat luachanna gaolmhara a choinneáil le chéile, amhail léamha braiteoirí, dathanna, nó ainmneacha réad. Cruthaítear liostaí ag baint úsáide as lúibíní cearnacha [].

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)

Úsáid append leis chun míreanna a chur le liosta.

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#

Úsáidtear liosta 2T, nó liosta liostaí, go coitianta chun greillí, táblaí nó maitrísí a léiriú. Seasann gach fo-liosta do shraith nó do ghrúpáil shonrach sonraí.

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)

Is féidir leat eilimintí sonracha nó fiú fo-liostaí iomlána a mhodhnú laistigh de liosta 2T:

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#

Is sraith míreanna é tuple nach féidir a athrú tar éis a gcruthaithe. Is minic a úsáidtear iad chun luachanna gaolmhara a ghrúpáil le chéile.

def main():
    # Define a tuple
    set_1 = (100, "Left")

    # Print the tuple
    brain.print(set_1)

# VR threads — Do not delete
vr_thread(main)

Cruthaítear tuplaí ag baint úsáide as lúibíní () seachas lúibíní cearnacha [].