Pelajaran modul (1/4)
def dan kembali
fungsi adalah blok kode yang dapat digunakan kembali: Anda mendefinisikannya sekali dengan def,
lalu teleponlah sebanyak yang Anda mau. Fungsi membuat kode menjadi modular,
dapat diuji, dan mendokumentasikan diri sendiri.
Sintaks dasar
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defmemperkenalkan fungsi, diikuti dengan nama dan parameter di dalamnya tanda kurung.:membuka blok yang menjorok ke dalam.returnmengirimkan nilai kembali ke pemanggil dan mengakhiri fungsinya.
Eksplisit return vs implisit None
Jika Anda tidak menulis return, fungsi akan mengembalikan None secara implisit:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # Nonereturn kosong (tanpa nilai) juga mengembalikan None, tetapi dapat berfungsi sebagai awal
keluar:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"Banyak nilai? Kembalikan Tuple
Python tidak memiliki "parameter keluar": untuk mengembalikan lebih dari satu hal, kembalikan a tuple (sering dibongkar oleh pemanggil).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: dokumentasi bawaan
String pertama di dalam fungsi adalah docstring: ia muncul di
help(fn) dan sebagai tooltip di IDE.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2Cakupan: variabel lokal
Variabel yang didefinisikan di dalam suatu fungsi adalah lokal: variabel tersebut tidak ada di luar.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedFungsi selalu mengembalikan sesuatu
Dengan Python, jika suatu fungsi tidak secara eksplisit mendeklarasikan pernyataan return atau menampilkan return kosong, maka secara implisit akan mengembalikan nilai khusus None. Tidak ada fungsi yang tidak mengembalikan nilai.
Cobalah
Tentukan fungsi `double(x)` yang mengembalikan `x * 2`. Kemudian panggil dengan 7 dan tetapkan hasilnya ke `hasil`. Evaluasi `hasil`.
Tunjukkan petunjuk
Gunakan pengembalian x * 2.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Tentukan `min_max(nums)` yang mengembalikan tupel `(minimum, maksimum)`. Sebut saja pada `[3, 1, 4, 1, 5, 9, 2, 6]` dan ekstrak hasilnya menjadi `mn, mx`. Evaluasi `(mn, mx)`.
Tunjukkan petunjuk
kembalikan min(angka), maks(angka)
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Definisikan fungsi \`is_palindrome(teks)\` yang mengembalikan \`True\` jika string masukan sama dengan versi kebalikannya, dan \`False\` sebaliknya. Uji fungsi dengan \`is_palindrome("radar")\` sebagai ekspresi terakhir.
Tunjukkan petunjuk
Gunakan slicing text[::-1] untuk membalikkan string dan membandingkannya dengan teks asli.
Solusi tersedia setelah 3 upaya