Instrucțiuni condiționale

Introducere

Până acum am îndeplinit sarcini predefinite, dar la modul serios nu am făcut decât ce face un casetofon care urmează redă același lucru de fiecare dată. Ceea ce face programarea atât de puternică sunt instrucțiunile condiționale. Este facilitatea de a testa o variabilă față de o valoare și de a reacționa într-un fel dacă condiția este îndeplinită de variabilă și în alt fel dacă nu. Acestea sunt în mod normal denumite de programatori instrucțiuni if.

Pentru a ști dacă condiția este Adevărată sau Falsă avem nevoie de un nou tip de date: logice. Acestea permit operații logice. O instrucțiune sau operație logică poate fi evaluată la Adevărat sau Fals. Instrucțiunea noastră condițională poate fi înțeleasă ca:

dacă (o condiție este Adevărată):

atunci execută aceste lucruri doar pentru ‘Adevărat’

altfel:

altfel fă aceste lucruri numai pentru ‘Fals’.

Condiția poate fi orice se evaluează la Adevărat sau Fals. Comparațiile întotdeauna întorc Adevărat sau Fals, de exemplu == (este egal cu), > (mai mare decât), < (mai mic decât).

Partea else este opțională. Dacă nu o folosești, atunci când condiția are valoarea ‘Fals’ nu se va întâmpla nimic.

Exemple

Iată câteva exemple. Poți să le citești linie cu linie și să te gândești ce fac, sau poți să le execuți pentru a fi sigur:

condition = True
if condition:
    print("condition met")

if not condition:
    print("condition not met")

direction = -30
if direction > 0 :
    turtle.forward(direction)
else:
    turtle.left(180)
    turtle.forward(-direction)

Cum să dai indicații

Țestoasele din Python pot fi foarte bune la executat instrucțiuni. Hai să încercăm să folosim funcția input() pentru a cere utilizatorului o direcție în care să miște țestoasa. Pentru a păstra lucrurile simple vom accepta doar două instrucțiuni: “left” (stânga) și “right” (dreapta).

Note

Folosești Python 2? Funcția input() se numește raw_input().

Este mult mai ușor să definești asta ca o funcție, adică:

def move():
    direction = input("Go left or right? ")
    if direction == "left":
        turtle.left(60)
        turtle.forward(50)
    if direction == "right":
        turtle.right(60)
        turtle.forward(50)

Acum oricând folosești move() ți se va cere să alegi left (stânga) sau right (dreapta).

“prelucrarea datelor”

În acest program, țestoasa va răspunde doar la exact left sau right, fără excepție. Deși Left sau LEFT ar putea părea același lucru ca și left pentru un om, asta nu e valabil și în cazul programării. Python are niște metode care să te ajute la asta. Un șir ce caractere are metodele .strip(), care elimină spațiile albe și .lower() care transformă toate literele în litere mici.

Iată câteva exemple care afișează efectele lui .strip() și .lower():

my_variable = "       I Am Capitalised"
print(my_variable)
my_stripped = my_variable.strip()
print(my_stripped)
my_lower = my_variable.lower()
print(my_lower)

Încearcă să adaugi direction = direction.strip().lower() la funcția move(), pentru a vedea ce efect are. Adeseori numim genul acesta de cod “data munging” (prelucrarea datelor), și este foarte des întâlnit.

Poți să adaugi opțiuni suplimentare pentru a face țestoasa să deseneze și alte lucruri? Ce zici de hexagon?