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
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defişlevi tanıtır, ardından adı ve parametreleri gelir. parantez.:girintili bloğu açar.returnarayana 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:
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ış:
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).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: yerleşik belgeler
Fonksiyonun içindeki ilk dize docstring'dir: içinde görünür
help(fn) ve IDE'lerde araç ipucu olarak.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2Kapsam: yerel değişkenler
Bir fonksiyonun içinde tanımlanan değişkenler yereldir: mevcut değildirler dışarıda.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedFonksiyonlar 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
'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.
İpucu göster
Dönüş x * 2'yi kullanın.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
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.
İpucu göster
minimum(sayılar), maksimum(sayılar) değerini döndür
3 denemeden sonra çözüm mevcut
Ek zorluk
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.
İ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