Ana içeriğe geç
Modül 5 · Ders 1 ders 4Kurstaki 17/36~12 min
Modül dersleri (1/4)

def ve dönüş

işlev yeniden kullanılabilen bir kod bloğudur: onu def ile bir kez tanımlarsınız, daha sonra onu istediğiniz kadar arayın. İşlevler kodu modüler hale getirir, test edilebilir ve kendi kendini belgeleyen.

Temel sözdizimi

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

saluta("Ada")     # 'Ciao, Ada!'
  • def işlevi tanıtır, ardından adı ve parametreleri gelir. parantez.
  • : girintili bloğu açar.
  • return arayana bir değer gönderir ve işlevi sonlandırır.

Açık return ile örtülü None karşılaştırması

return yazmazsanız, işlev dolaylı olarak None değerini döndürür:

Python
def stampa_e_basta(x):
    print(x)

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

Çıplak bir return (değer yok) da None değerini döndürür, ancak erken bir işlev görebilir çıkış:

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

Çoklu değerler mi? Bir tuple döndür

Python'un "çıkış parametreleri" yoktur: birden fazla şeyi döndürmek için bir değer döndürün tuple (çoğunlukla arayan tarafından paketinden çıkarılır).

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

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

Docstring: yerleşik belgeler

Fonksiyonun içindeki ilk dize docstring'dir: içinde görünür help(fn) ve IDE'lerde araç ipucu olarak.

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

Kapsam: yerel değişkenler

Bir fonksiyonun içinde tanımlanan değişkenler yereldir: mevcut değildirler dışarıda.

Python
def f():
    x = 10
    return x

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

Fonksiyonlar her zaman bir şeyler döndürür

Python'da, bir işlev açıkça bir return ifadesi bildirmiyorsa veya boş bir return içeriyorsa, örtülü olarak None özel değerini döndürecektir. Değer döndürmeyen hiçbir fonksiyon yoktur.

Deneyin

Egzersiz#python.m5.l1.e1
Denemeler: 0Yükleniyor…

'x * 2' sonucunu döndüren bir 'double(x)' fonksiyonu tanımlayın. Daha sonra 7 ile çağırın ve sonucu 'sonuç'a atayın. 'Sonucu' değerlendirin.

Düzenleyici yükleniyor…
İpucu göster

Dönüş x * 2'yi kullanın.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#python.m5.l1.e2
Denemeler: 0Yükleniyor…

Bir demet `(minimum, maksimum)` döndüren `min_max(sayılar)`ı tanımlayın. Bunu "[3, 1, 4, 1, 5, 9, 2, 6]" olarak adlandırın ve sonucu "mn, mx" olarak açın. '(mn, mx)' değerini değerlendirin.

Düzenleyici yükleniyor…
İpucu göster

minimum(sayılar), maksimum(sayılar) değerini döndür

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#python.m5.l1.e3
Denemeler: 0Yükleniyor…

Giriş dizesi ters çevrilmiş sürümüne eşitse \`True\` değerini, aksi halde \`False\` değerini döndüren \`is_palindrome(text)\` işlevini tanımlayın. Son ifade olarak \`is_palindrome("radar")\` ile işlevi test edin.

Düzenleyici yükleniyor…
İpucu göster

Dizeyi tersine çevirmek ve orijinal metinle karşılaştırmak için dilimleme metnini[::-1] kullanın.

3 denemeden sonra çözüm mevcut