Fungsi Python - Gerbang Anda ke Pemrograman Efisien
Helo di sini, pemrogram Python yang berhasrat! Saya sangat gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia fungsi Python. Sebagai seseorang yang telah mengajar pemrograman beberapa tahun, saya boleh katakan bahwa fungsi adalah seperti rakit penyelamat bagi pemrograman - serba guna, berkuasa dan sangat penting. Jadi, mari kita melompat dan membongkar misteri-misteri fungsi Python bersama-sama!
Apa itu Fungsi Python?
Bayangkan anda membuat kue (yum!). Daripada mengukur bahan-bahan setiap kali, apakah tidak baik jika anda hanya perlu katakan "buat kue" dan semua langkah itu berlaku secara automatik? Itulah yang fungsi lakukan dalam pemrograman! Mereka adalah blok kode yang dapat digunakan kembali yang melakukan tugas tertentu.
Mengapa Gunakan Fungsi?
- Kegunaan Kembali: Tulis sekali, gunakan berberapa kali.
- Modularitas: Pecahkan masalah kompleks menjadi bahagian yang lebih kecil dan dapat dikendalikan.
- Keterbacaan: Buat kode anda lebih mudah untuk dipahami dan dipelihara.
Jenis Fungsi Python
Python menawarkan beberapa jenis fungsi:
- Fungsi bawaan
- Fungsi yang didefinisikan pengguna
- Fungsi tanpa nama (fungsi lambda)
Mari kita fokus pada fungsi yang didefinisikan pengguna untuk saat ini, kerana mereka adalah batu bata bagi perjalanan Python anda.
Definisi Fungsi Python
Membuat fungsi adalah seperti menulis resepi. Ini adalah struktur dasar:
def ucapan_pengguna(name):
"""Fungsi ini menyapa pengguna"""
print(f"Hello, {name}! 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!). -
(name)
adalah parameter yang fungsi mengharapkan untuk menerima. - Blok yang denga adalah tubuh fungsi, di mana magik berlangsung.
- String dalam tanda petik triple adalah yang disebut docstring, memberikan deskripsi singkat tentang fungsi.
Memanggil Fungsi Python
Sekarang bahwa kita telah mendefinisikan fungsi kita, mari gunakannya!
ucapan_pengguna("Alice")
Output:
Hello, Alice! Selamat datang di dunia fungsi Python!
Lihatlah betapa mudah itu? Kita hanya memanggil fungsi kita dan memberikan argumen ("Alice"), dan ia melakukan tugasnya sempurna!
Lulusan oleh Rujukan vs Nilai
Dalam Python, semua adalah objek, dan semua variabel menahan rujukan ke objek. Ini berarti bahwa ketika anda passing variabel ke fungsi, anda sebenarnya passing rujukan ke objek yang dituju. Konsep ini adalah penting untuk memahami bagaimana fungsi berinteraksi dengan data.
def ubah_list(my_list):
my_list.append(4)
print("Dalam fungsi:", my_list)
list_asal = [1, 2, 3]
ubah_list(list_asal)
print("Luar fungsi:", list_asal)
Output:
Dalam fungsi: [1, 2, 3, 4]
Luar fungsi: [1, 2, 3, 4]
Perhatikan bahwa list asal telah diubah? Itu karena kita passing rujukan ke list, bukan salinan dari itu.
Argumen Fungsi Python
Python menyediakan cara fleksibel untuk passing argumen ke fungsi. Mari kita eksplorasi mereka!
Argumen Posisi atau Wajib
Ini adalah bentuk paling dasar dari argumen. Urutan penting!
def ucapan(name, greeting):
print(f"{greeting}, {name}!")
ucapan("Bob", "Hello") # Betul
ucapan("Hello", "Bob") # Ups! Ini akan menghasilkan hasil yang tidak diharapkan
Argumen Kata Kunci
Gunakan ini apabila anda ingin membuat panggilan fungsi anda lebih eksplisit:
ucapan(name="Charlie", greeting="Selamat pagi")
ucapan(greeting="Selamat malam", name="David") # Urutan tidak penting di sini!
Argumen Default
Ini menyediakan nilai fallback jika argumen tidak diberikan:
def ucapan(name, greeting="Hello"):
print(f"{greeting}, {name}!")
ucapan("Eve") # Menggunakan ucapan default
ucapan("Frank", "Good night") # Mengganti default
Argumen Posisi-Sahaja
Python 3.8 mengenalkan cara untuk menentukan argumen yang harus dilewatkan secara posisional:
def ucapan(name, /, greeting="Hello"):
print(f"{greeting}, {name}!")
ucapan("George") # Betul
ucapan(name="Helen") # Ini akan menghasilkan kesalahan
Argumen Kata Kunci-Sahaja
Paksa pemanggil untuk menggunakan argumen kata kunci untuk keterbacaan yang lebih baik:
def ucapan(*, name, greeting="Hello"):
print(f"{greeting}, {name}!")
ucapan(name="Ivy") # Betul
ucapan("Jack") # Ini akan menghasilkan kesalahan
Argumen Arbitrer atau Panjang Variabel
Apabila anda tidak yakin berapa banyak argumen anda akan menerima:
def ucapan(*names):
for name in names:
print(f"Hello, {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 (Fungsi Lambda)
Kadang-kadang anda perlu fungsi yang cepat, sekaliguna. Masukkan fungsi lambda:
kotak = lambda x: x ** 2
print(kotak(4)) # Output: 16
Lingkup Variabel
Mengerti lingkup variabel adalah penting untuk menulis kode yang efisien dan bebas dari bug.
Variabel Global vs. Lokal
var_global = "Saya global!"
def uji_lingkup():
var_lokal = "Saya lokal!"
print(var_global) # Ini berfungsi
print(var_lokal) # Ini juga berfungsi
uji_lingkup()
print(var_global) # Ini berfungsi
print(var_lokal) # Ini akan menghasilkan kesalahan
Ingat, variabel lokal hanya dapat diakses dalam fungsi mereka!
Tabel Metode Fungsi
Berikut adalah tabel yang berguna dari beberapa metode fungsi yang umum 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 |
Memungkinkan jumlah arbitrer argumen posisional | def func(*args): |
**kwargs |
Memungkinkan jumlah arbitrer argumen kata kunci | def func(**kwargs): |
global |
Mengumumkan variabel global di dalam fungsi | global x |
nonlocal |
Mengumumkan variabel non-local di dalam fungsi bersarang | nonlocal y |
Dan itu adalah, para pelajar yang dihargai! Kita telah melakukan perjalanan melalui wilayah fungsi Python, dari dasar-dasar ke beberapa konsep yang lebih tingkat lanjut. Ingat, praktek membuat perfect, jadi jangan segan untuk melakukan eksperimen dengan konsep ini di kode anda sendiri. Selamat coding, dan semoga fungsi bersama dengan anda!
Credits: Image by storyset