tutoriale-python-–-instructiuni-de-control-flow
aceasta apasati condi enter este-numar instruc instruciunea-if negativ pozitiv privi python-shell semnifica Stiri IT Stiri IT Tutoriale Python Uncategorized

Tutoriale Python – Instrucţiuni de Control Flow

Tutoriale Python – Instrucţiuni de Control Flow

Instrucţiunea if

Instrucţiunea [alert status=”info”]if[/alert] execută o anumită porţiune de cod numai dacă este îndeplinită o condiţie. Condiţia este o expresie booleeană. [alert status=”info”]>>> x = 0

>>> if x print(‘Negativ’)

elif x == 0:

print(‘Neutru’)

elif x == 1:

print(‘Unitate’)

else:

print(‘Pozitiv mai mare ca 1’)

Neutru[/alert]Python foloseşte indentarea (alineatul) pentru a delimita blocurile de cod.

Instrucţiunile din blocul [alert status=”info”]if[/alert] se scriu cu 4 spaţii mai interior. În exemple nu apare aşa deoarece Python inserează TAB-uri în loc de spaţii, iar Blogspot se pare că are o problemă cu aceste TAB-uri.

În exemplu am o singură instrucţiune sub [alert status=”info”]if[/alert], [alert status=”info”]print(‘Negativ’)[/alert]. Nu trebuie să număraţi spaţiile deoarece Python indentează automat când apăsaţi ENTER după cele două puncte (:).

Instrucţiunea [alert status=”info”]elif[/alert] este o prescurtare de la else if[/alert].

Instrucţiunile [alert status="info"]elif[/alert] şi [alert status="info"]else[/alert] sunt opţionale. [alert status="info"]else[/alert] apare întotdeauna ultima.

Semnificaţia este următoarea: Dacă condiţia de la [alert status="info"]if[/alert] este adevărată se execută instrucţiunile din blocul [alert status="info"]if[/alert], altfel se trece la ramura următoare, [alert status="info"]else[/alert] sau [alert status="info"]elif[/alert], şi se reia procesul.

După ce aţi terminat de scris o instrucţiune [alert status="info"]if[/alert] în IDLE, apăsaţi de două ori ENTER ca s-o executaţi.

Instrucţiunile for şi while

Instrucţiunea [alert status=”info”]for[/alert] este folosită pentru a parcurge o secvenţă de numere (progresie aritmetică) sau pentru a parcurge elementele unei colecţii (liste, stringuri, seturi, etc.). [alert status=”info”]>>> txt = ‘tutorialeplusplus’

>>> for ch in txt:

print(ch, end=’ ‘)

t u t o r i a l e p l u s p l u s [/alert]end=' '[/alert] înseamnă că fiecare afişare este despărţită de spaţiu (implicit este end='n'[/alert]).

Iată un exemplu cu [alert status="info"]for[/alert] şi [alert status="info"]if[/alert]. [alert status="info"]>>> for ch in txt:

if ord(ch) > ord('e'):

print(ch, end=' ')

else:

print(ch.upper(), end=' ')

t u t o r i A l E p l u s p l u s [/alert]Un exemplu cu o progresie aritmetică generată de funcţia range[/alert]. [alert status="info"]>>> for i in range(5):

print(i)

0

1

2

3

4[/alert]Funcţia (de fapt este o clasă…dar voi ajunge şi acolo) range[/alert] ia trei parametri (ultimul fiind opţional): start, stop, step[/alert] (step[/alert] [pas] semnifică raţia progresiei) SAU ia un singur parametru (ca-n exemplu) stop[/alert] (start=0[/alert] şi step=1[/alert]). [alert status="info"]>>> for nr in range(10, 0, -1):

print(nr, end=' ')

10 9 8 7 6 5 4 3 2 1 [/alert]Parcurgerea progresiilor aritmetice cu range[/alert] este mult mai eficientă decât echivalentul în [alert status="info"]while[/alert]. [alert status="info"]>>> mylist = ['a', 1, True, 'b', 0]

>>> ln = len(mylist)

>>> for i in range(ln):

print(mylist[i])

a

1

True

b

0[/alert]Instrucţiunea [alert status=”info”]while[/alert] repetă o porţiune de cod cât timp condiţia este adevărată. [alert status=”info”]>>> q = 1

>>> while q print(q)

q += 1 # q = q + 1

1

2

3

4

5

6

7

8

9[/alert] Şi un alt exemplu, în care creez o listă pornind de la un string şi afişez acel string invers: [alert status=”info”]>>> st = list(‘stiva’)

>>> while len(st) > 0:

print(st.pop(), end=”)

avits[/alert]Nu uitaţi că funcţia pop[/alert] returnează şi apoi elimină elementul de la sfârşitul listei.

Instrucţiunile break, continue şi else pentru loopuri

Un loop (buclă) reprezintă o structură repetitivă ([alert status=”info”]for[/alert] sau [alert status=”info”]while[/alert]).

Instrucţiunea [alert status=”info”]break[/alert] întrerupe execuţia unui loop. [alert status=”info”]>>> for i in range(10):

if i == 5:

break

print(i)

0

1

2

3

4[/alert]Instrucţiunea [alert status=”info”]continue[/alert] ignoră restul codului din loop şi continuă cu următoarea iteraţie. [alert status=”info”]>>> for i in range(10):

if i == 3 or i == 5 or i == 7:

continue

print(i)

0

1

2

4

6

8

9[/alert]Instrucţiunile loop (repetitive) pot avea o ramură [alert status=”info”]else[/alert] care se execută atunci când loop-ul este epuizat, fie pentru că a parcurs toate elementele unei colecţii, fie condiţia a devenit falsă.

Pe scurt: Loopul NU este întrerupt cu [alert status=”info”]break[/alert].

[alert status=”info”]>>> for i in range(2, 10):

for x in range(2, i):

if i % x == 0:

print(i, ‘ nu este numar prim’)

break

else:

# Dupa epuizarea forului se executa else

print(i, ‘ este numar prim’)

2 este numar prim

3 este numar prim

4 nu este numar prim

5 este numar prim

6 nu este numar prim

7 este numar prim

8 nu este numar prim

9 nu este numar prim[/alert]Atenţie! Acest [alert status=”info”]else[/alert] este asociat cu un [alert status=”info”]for[/alert] nu cu [alert status=”info”]if[/alert].

Priviţi ce s-ar fi afişat fără [alert status=”info”]else[/alert]. [alert status=”info”]>>> for i in range(2, 10):

for x in range(2, i):

if i % x == 0:

print(i, ‘ nu este numar prim’)

break

# Aceasta instructiune se va executa de fiecare data

print(i, ‘ este numar prim’)

2 este numar prim

3 este numar prim

4 nu este numar prim

4 este numar prim

5 este numar prim

6 nu este numar prim

6 este numar prim

7 este numar prim

8 nu este numar prim

8 este numar prim

9 nu este numar prim

9 este numar prim[/alert]Deci, pentru structurile repetitive, [alert status=”info”]else[/alert] se execută numai când loopul se termină normal, fără întrerupere cu [alert status=”info”]break[/alert].

Instrucţiunea pass

Instrucţiunea [alert status=”info”]pass[/alert] nu face nimic. Este instrucţiunea vidă.

Se foloseşte acolo unde se cere o instrucţiune din punct de vedere sintactic, dar nu este nevoie de una.

Exemplu, [alert status=”info”]while[/alert] infinit. [alert status=”info”]>>> while True:

pass # Apasati Ctrl+C ca sa opriti executia[/alert]Mai multe informaţii: [alert status=”info”]>>> help(‘for’)

>>> help(‘while’)[/alert]

Acum ar trebui să fiţi în stare să scrieţi programe (scripturi) simple.

Scrieţi în Python Shell un program care calculează suma primilor 20 de termeni ai şirului lui Fibonacci.

Primii doi termeni sunt 1, iar umătorii se calculează conform formulei fib_n = fib_n-1 + fib_n-2[/alert]Vezi rezultatul.

Vezi soluţia. >>> fib, ssm = [1, 1], 2 # ssm – suma

>>> for i in range(18):

fib.append(fib[-1] + fib[-2])

ssm += fib[-1][/alert]

Faci un comentariu sau dai un răspuns?

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *