Lompati ke konten utama
Modul 5 · Pelajaran 1 dari 417/36 dalam kursus~12 min
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

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

saluta("Ada")     # 'Ciao, Ada!'
  • def memperkenalkan fungsi, diikuti dengan nama dan parameter di dalamnya tanda kurung.
  • : membuka blok yang menjorok ke dalam.
  • return mengirimkan nilai kembali ke pemanggil dan mengakhiri fungsinya.

Eksplisit return vs implisit None

Jika Anda tidak menulis return, fungsi akan mengembalikan None secara implisit:

Python
def stampa_e_basta(x):
    print(x)

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

return kosong (tanpa nilai) juga mengembalikan None, tetapi dapat berfungsi sebagai awal keluar:

Python
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).

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

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

Docstring: dokumentasi bawaan

String pertama di dalam fungsi adalah docstring: ia muncul di help(fn) dan sebagai tooltip di IDE.

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

Cakupan: variabel lokal

Variabel yang didefinisikan di dalam suatu fungsi adalah lokal: variabel tersebut tidak ada di luar.

Python
def f():
    x = 10
    return x

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

Fungsi 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

Latihan#python.m5.l1.e1
Upaya: 0Memuat…

Tentukan fungsi `double(x)` yang mengembalikan `x * 2`. Kemudian panggil dengan 7 dan tetapkan hasilnya ke `hasil`. Evaluasi `hasil`.

Memuat editor…
Tunjukkan petunjuk

Gunakan pengembalian x * 2.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m5.l1.e2
Upaya: 0Memuat…

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)`.

Memuat editor…
Tunjukkan petunjuk

kembalikan min(angka), maks(angka)

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m5.l1.e3
Upaya: 0Memuat…

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.

Memuat editor…
Tunjukkan petunjuk

Gunakan slicing text[::-1] untuk membalikkan string dan membandingkannya dengan teks asli.

Solusi tersedia setelah 3 upaya