Python Programming Language - Control Flow, Lists, and Functions
Python - if, else, while, for
- În Python, indentarea este folosită pentru a marca corpul instrucțiunilor repetitive sau de decizie.
- Semnul ":" marchează sfârșitul liniei cu
if,else,while,for.
Exemplu:
x = 30
if x <= 15:
y = x + 15
elif x <= 30:
y = x + 30
else:
y = x
x = 1
while x < 5:
print(x)
x = x + 1
break #iese din bucla while
else:
# aceasta clauza else este executata doar daca bucla while se termina
# natural (fara break)
for i in [1, 7, 13, 2]:
print(i)
for i in range(5):
print('Am ajuns aici deci x>=5')
print(i)
Caracteristici Python
- Limbaj mai ușor de învățat.
- Nu are paranteze, nu are
main. - Generează erori dacă există spații suplimentare.
Python - for
- Deseori, când lista este deja definită în program, se folosesc construcții de tipul:
x = [1, 2, 2020, 3, 1, 2020]
for numar in x:
print(numar)
- Nu uitați semnul ":" la finalul liniei
for,ifetc. - Indentați liniile din corpul structurilor
for,ifetc. - Nu indentați alte linii (altfel apare eroare).
Python - for și enumerate
- De obicei,
forparcurge listele ascunzând indexul elementelor (ca în exemplul anterior,for numar in x:). - Dacă avem nevoie de indexul elementelor, folosim
enumerate():
x = [1, 2, 2020, 3, 1, 2020]
for i, numar in enumerate(x):
print(f"x[{i}] = {numar}")
Python - Liste numerice și for
- În Python, generăm secvențe de numere cu
range(start, stop[, step])
for i in range(5):
print(i, end=', ')
print("\n")
for i in range(5, 10):
print(i, end=', ')
print("\n")
for i in range(5, 50, 5):
print(i, end=',')
- Pentru lucrul cu secvențe numerice, este recomandat pachetul
numpy. - Exemplu:
import numpy as np
for i in np.arange(5, 50, 2.5):
print(i, end=', ')
- Avantaj
np.arange(0.0, np.pi, np.pi/100).
Python - List comprehension
forpoate fi folosit pentru a genera liste pornind de larangesau de la o altă listă existentă:
nums = [0, 1, 2, 3, 4]
patrat = []
for x in nums:
patrat.append(x ** 2)
print(patrat)
- Abordare similară cu C:
import numpy as np
nums = np.arange(0, 5)
- Abordare tipică Python:
patrat = [x ** 2 for x in nums]
print(patrat)
- Putem include condiții (
for ... if ...) în list comprehension:
patrat = [x ** 2 for x in nums if x % 2 == 0]
Python - Funcții
- Funcțiile se declară folosind
defcu o sintaxă similarăif,foretc. (adică folosind markerul ":" și indentare).
def functie_simpla():
print("Mesaj")
funkcie_simpla() #apelarea functiei
def apel(nume, numar):
print(f"{nume} este asteptat la ghiseul {numar}")
apel("Popescu", 3)
- Datorită faptului că nu există tipuri de variabile definite pentru argumente, este posibil să nu primim erori dacă nu respectăm ordinea parametrilor:
apel("Popescu", 3) # Popescu este asteptat la ghiseul 3
apel(3, "Popescu") # 3 este asteptat la ghiseul Popescu
- Pentru a evita confuzia, se poate specifica numele parametrilor la apel:
apel(numar=3, nume="Popescu")
Python - Funcții și return
- Funcțiile întorc valori cu
return:
def get_formatted_name(first_name, last_name):
full_name = f"{first_name} {last_name}"
return full_name.title()
muzician = get_formatted_name('johann', 'bach')
print(muzician)
- Argumentele pot primi valori default:
def apel(nume, numar=1):
print(f"{nume} este asteptat la ghiseul {numar}")
apel("Popescu", 3)
apel("Popescu") #numar va primi valoarea default 1