Python - Fungsi: Gerbang Anda ke Pemrograman Efisien

Halo di sana, pemrogram Python yang berbakat! Saya sangat senang menjadi pemandu Anda dalam perjalanan yang menarik ini ke dunia fungsi Python. Sebagai seseorang yang telah mengajar pemrograman selama tahun-tahun, saya bisa memberitahu Anda bahwa fungsi adalah seperti pisaunya penyedia kode - serbaguna, kuat, dan sangat penting. Jadi, mari kita melompat dan membuka misteri-misteri dari fungsi Python bersama-sama!

Python - Functions

Apa itu Fungsi Python?

Bayangkan Anda membuat kue (yum!). Daripada mengukur bahan-bahan setiap kali, apakah tidak baik jika Anda hanya bisa mengatakan "buat kue" dan semua langkah itu terjadi secara otomatis? Itulah yang benar-benar dilakukan oleh fungsi dalam pemrograman! Mereka adalah blok kode yang dapat digunakan kembali yang melakukan tugas tertentu.

Mengapa Menggunakan Fungsi?

  1. Kegunaan Kembali: Tulis sekali, gunakan banyak kali.
  2. Modularitas: Pecahkan masalah kompleks menjadi bagian yang lebih kecil dan dapat dikelola.
  3. Keterbacaan: Buat kode Anda lebih mudah dipahami dan dipelihara.

jenis Fungsi Python

Python menawarkan beberapa jenis fungsi:

  1. Fungsi bawaan
  2. Fungsi yang didefinisikan oleh pengguna
  3. Fungsi tanpa nama (lambda fungsi)

Mari kita fokus pada fungsi yang didefinisikan oleh pengguna untuk saat ini, karena mereka adalah batu bata dari perjalanan Python Anda.

Mendefinisikan Fungsi Python

Membuat fungsi adalah seperti menulis resep. Ini adalah struktur dasar:

def ucapan_pengguna(nama):
"""Fungsi ini menyapa pengguna"""
print(f"Halo, {nama}! Selamat datang di dunia fungsi Python!")

Mari kita pecahkan ini:

  • def adalah kata kunci yang memberitahu Python kita sedang mendefinisikan fungsi.
  • ucapan_pengguna adalah nama fungsi (pilih yang deskriptif!).
  • (nama) adalah parameter yang fungsi ini mengharapkan untuk menerima.
  • Blok yang terindent adalah tubuh fungsi, tempat dimana magik terjadi.
  • String dalam tanda kutip triple adalah disebut docstring, menyediakan deskripsi singkat tentang fungsi.

Memanggil Fungsi Python

Sekarang kita telah mendefinisikan fungsi kita, mari gunakan itu!

ucapan_pengguna("Alice")

Output:

Halo, Alice! Selamat datang di dunia fungsi Python!

Lihatlah betapa mudah itu? Kita hanya memanggil fungsi kita dan memberikan argumen ("Alice"), dan itu melakukan tugasnya sempurna!

Lulusan oleh Referensi vs Nilai

Di Python, semua adalah objek, dan semua variabel menahan referensi ke objek. Ini berarti bahwa ketika Anda mengirim variabel ke fungsi, Anda sebenarnya mengirim referensi ke objek yang dituju. Konsep ini sangat penting untuk memahami bagaimana fungsi berinteraksi dengan data.

def ubah_list(my_list):
my_list.append(4)
print("Dalam fungsi:", my_list)

list_awal = [1, 2, 3]
ubah_list(list_awal)
print("Di luar fungsi:", list_awal)

Output:

Dalam fungsi: [1, 2, 3, 4]
Di luar fungsi: [1, 2, 3, 4]

Perhatikan bahwa daftar asli diubah? Itu karena kita telah mengirim referensi ke daftar, bukan salinan dari itu.

Argumen Fungsi Python

Python menyediakan cara fleksibel untuk mengirim argumen ke fungsi. Mari kita jelajah mereka!

Argumen Posisi atau Wajib

Ini adalah bentuk paling dasar dari argumen. Urutan penting!

def ucapan(nama, ucapan):
print(f"{ucapan}, {nama}!")

ucapan("Bob", "Halo")  # Benar
ucapan("Halo", "Bob")  # Ups! Ini akan menghasilkan hasil yang tidak diharapkan

Argumen Kata Kunci

Gunakan ini ketika Anda ingin membuat panggilan fungsi Anda lebih eksplisit:

ucapan(nama="Charlie", ucapan="Selamat pagi")
ucapan(ucapan="Selamat malam", nama="David")  # Urutan tidak penting di sini!

Argumen Default

Ini menyediakan nilai fallback jika argumen tidak disediakan:

def ucapan(nama, ucapan="Halo"):
print(f"{ucapan}, {nama}!")

ucapan("Eve")  # Menggunakan ucapan default
ucapan("Frank", "Selamat malam")  # Mengganti default

Argumen Posisi-only

Python 3.8 memperkenalkan cara untuk menentukan argumen yang harus dilewatkan secara posisional:

def ucapan(nama, /, ucapan="Halo"):
print(f"{ucapan}, {nama}!")

ucapan("George")  # Benar
ucapan(nama="Helen")  # Ini akan menyebabkan kesalahan

Argumen Kata Kunci-only

Paksa pemanggil untuk menggunakan argumen kata kunci untuk keterbacaan yang lebih baik:

def ucapan(*, nama, ucapan="Halo"):
print(f"{ucapan}, {nama}!")

ucapan(nama="Ivy")  # Benar
ucapan("Jack")  # Ini akan menyebabkan kesalahan

Argumen Arbitrer atau Panjang Variabel

Ketika Anda tidak yakin berapa banyak argumen yang Anda akan menerima:

def ucapan(*nama):
for name in nama:
print(f"Halo, {name}!")

ucapan("Kate", "Liam", "Mia")

Fungsi Python dengan Nilai Kembali

Fungsi juga dapat memberikan hasil kembali:

def tambah(a, b):
return a + b

hasil = tambah(5, 3)
print(f"Hasil penjumlahan adalah: {hasil}")

Fungsi Tanpa Nama (Lambda Fungsi)

Ketika Anda butuh fungsi cepat, sekaliguna, masukkan lambda fungsi:

kuadrat = lambda x: x ** 2
print(kuadrat(4))  # Output: 16

Cakupan Variabel

Mengerti cakupan variabel adalah penting untuk menulis kode yang efisien dan bebas dari bug.

Variabel Global vs. Lokal

var_global = "Saya adalah global!"

def uji_cakupan():
var_lokal = "Saya adalah lokal!"
print(var_global)  # Ini bekerja
print(var_lokal)   # Ini juga bekerja

uji_cakupan()
print(var_global)  # Ini bekerja
print(var_lokal)   # Ini akan menyebabkan kesalahan

Ingat, variabel lokal hanya dapat diakses dalam fungsi mereka!

Tabel Metode Fungsi

Berikut adalah tabel yang praktis dari beberapa metode umum terkait fungsi di Python:

Metode Deskripsi Contoh
def Mendefinisikan fungsi def my_function():
return Menentukan nilai kembali return x + y
lambda Membuat fungsi tanpa nama lambda x: x * 2
*args Mengizinkan jumlah arbitrari argumen posisi def func(*args):
**kwargs Mengizinkan jumlah arbitrari argumen kata kunci def func(**kwargs):
global Mendeklarasikan variabel global di dalam fungsi global x
nonlocal Mendeklarasikan variabel non-lokal di dalam fungsi bersarang nonlocal y

Dan itu adalah, para pelajar saya yang tercinta! Kita telah berkeliling di wilayah fungsi Python, dari dasar-dasar ke konsep yang lebih maju. Ingat, praktek membuat perfect, jadi jangan segan untuk bereksperimen dengan konsep ini di kode Anda sendiri. Selamat coding, dan semoga fungsi bersama dengan Anda!

Credits: Image by storyset