Salt la conținutul principal
Modulul 5 · Lecția 1 din 417/36 în curs~12 min
Lecții din modul (1/4)

def și întoarcere

O funcție este un bloc de cod reutilizabil: îl definiți o dată cu def, apoi sună-l de câte ori vrei. Funcțiile fac codul modular, testabil și auto-documentat.

Sintaxa de bază

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def introduce funcția, urmată de numele și parametrii din parantezele.
  • : deschide blocul indentat.
  • return trimite o valoare înapoi apelantului și încheie funcția.

return explicit vs None implicit

Dacă nu scrieți return, funcția returnează implicit None:

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

Un return (fără valoare) returnează, de asemenea, None, dar poate servi ca un ieșire:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

Valori multiple? Returnează un tuplu

Python nu are „parametri de ieșire”: pentru a returna mai mult de un lucru, returnați a tuplu (desea despachetat de apelant).

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

Docstring: documentație încorporată

Primul șir din funcție este docstring: apare în help(fn) și ca indicație în IDE-uri.

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

Domeniul de aplicare: variabile locale

Variabilele definite în interiorul unei funcții sunt locale: nu există afara.

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

Funcțiile returnează întotdeauna ceva

În Python, dacă o funcție nu declară în mod explicit o instrucțiune return sau prezintă un return necompletat, va returna implicit valoarea specială None. Nu există funcții care să nu returneze o valoare.

Încearcă

Exercițiu#python.m5.l1.e1
Încercări: 0Se încarcă…

Definiți o funcție `double(x)` care returnează `x * 2`. Apoi apelați-l cu 7 și atribuiți rezultatul la „rezultat”. Evaluați „rezultatul”.

Se încarcă editorul...
Afișează indiciu

Utilizați returnarea x * 2.

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#python.m5.l1.e2
Încercări: 0Se încarcă…

Definiți `min_max(nums)` care returnează un tuplu `(minimum, maximum)`. Apelați-l pe `[3, 1, 4, 1, 5, 9, 2, 6]` și despachetați rezultatul în `mn, mx`. Evaluați `(mn, mx)`.

Se încarcă editorul...
Afișează indiciu

returnează min(nums), max(nums)

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#python.m5.l1.e3
Încercări: 0Se încarcă…

Definiți o funcție \`is_palindrome(text)\` care returnează \`True\` dacă șirul de intrare este egal cu versiunea sa inversată și \`False\` în caz contrar. Testați funcția cu \`is_palindrome("radar")\` ca ultima expresie.

Se încarcă editorul...
Afișează indiciu

Folosiți slicing text[::-1] pentru a inversa șirul și pentru a-l compara cu textul original.

Soluție disponibilă după 3 încercări