Fungsi dalam Python
Artikel ini menerangkan fungsi dalam Python.
YouTube Video
Fungsi dalam Python
Fungsi dalam Python adalah ciri penting untuk mentakrifkan blok kod yang boleh digunakan semula, membolehkan anda mengatur dan mempermudahkan program anda dengan memanggilnya apabila diperlukan. Menggunakan fungsi dapat meningkatkan keterbacaan kod dan mematuhi prinsip DRY (Don't Repeat Yourself - elakkan menulis kod yang sama berulang kali).
Mentakrifkan Fungsi
Fungsi ditakrifkan menggunakan kata kunci def
. Sintaks asasnya adalah seperti berikut:.
1def function_name(arg1, arg2, ..., argN):
2 """docstring (A brief description of the function)"""
3 processing
4 return return_value
Sebagai contoh, untuk mentakrifkan fungsi yang menambah dua nombor, anda boleh menulis:.
1def add(x, y):
2 """A function that adds two numbers and returns the result"""
3 return x + y
Memanggil Fungsi
Fungsi yang telah ditakrifkan boleh dipanggil dan digunakan seperti berikut:.
1result = add(3, 4)
2print(result) # Output: 7
Komponen Fungsi
-
Nama Fungsi: Nama fungsi yang digunakan untuk memanggilnya.
-
Argumen (Parameter): Nama pemboleh ubah yang menerima data yang dihantar semasa pemanggilan. Anda boleh mentakrifkan sifar atau lebih argumen.
-
String Dokumentasi (Docstring): Suatu string yang digunakan untuk menerangkan tujuan dan penggunaan fungsi. Pilihan.
-
Badan Fungsi: Blok bertakuk di mana arahan yang dijalankan oleh fungsi ditulis.
-
Nilai Pemulangan: Nilai yang dipulangkan kepada pemanggil menggunakan kenyataan
return
. Jikareturn
diabaikan,None
akan dipulangkan secara lalai.
Jenis-jenis Argumen
Dalam Python, terdapat beberapa jenis argumen.
- Argumen Posisi: Cara standard untuk menghantar argumen kepada fungsi.
- Argumen Lalai: Argumen dengan nilai lalai yang boleh diabaikan semasa pemanggilan.
1def greet(name, message="Hello"):
2 print(f"{message}, {name}")
3
4greet("Alice") # "Hello, Alice"
5greet("Bob", "Good morning") # "Good morning, Bob"
- Hujah Panjang Berubah:
*args
untuk menerima pelbagai hujah posisi sebagai tuple, dan**kwargs
untuk menerimanya sebagai kamus.
1def func(*args, **kwargs):
2 print("args:", args)
3 print("kwargs:", kwargs)
4
5func(1, 2, 3, a=4, b=5)
6# Output:
7# args: (1, 2, 3)
8# kwargs: {'a': 4, 'b': 5}
Dengan menggunakan fungsi dengan betul, anda boleh menulis program Python dengan lebih berkesan dan cekap.
Fungsi Lambda dalam Python
Dalam Python, fungsi lambda
digunakan untuk mendefinisikan fungsi tanpa nama yang ringkas. Tidak seperti fungsi yang didefinisikan dengan kata kunci def
biasa, lambda
membolehkan anda mencipta fungsi pendek satu baris. Di sini, kami akan menerangkan fungsi lambda
dalam Python secara terperinci.
Asas Fungsi lambda
Fungsi lambda
, juga dipanggil fungsi tanpa nama, digunakan untuk mendefinisikan fungsi sementara yang tidak mempunyai nama, seperti yang disarankan oleh namanya. Sintaks asasnya adalah seperti berikut:.
1lambda arguments: expression
arguments
: Nyatakan hujah untuk fungsi tersebut. Beberapa hujah boleh dinyatakan, dipisahkan dengan tanda koma.expression
: Ini adalah satu ungkapan yang dievaluasi berdasarkan hujah. Hasil daripada ungkapan tersebut menjadi nilai pemulangan fungsi.
Sebagai contoh, kod berikut mendefinisikan dan melaksanakan fungsi lambda
yang menambah dua nombor.
1add = lambda x, y: x + y
2print(add(5, 3)) # Output: 8
Dalam contoh ini, lambda x, y: x + y
adalah fungsi lambda
yang mengambil dua hujah, x
dan y
, dan mengembalikan jumlah mereka.
Penggunaan Fungsi lambda
Fungsi lambda
berguna untuk situasi di mana anda perlu mendefinisikan fungsi ringkas secara serta-merta. Mereka sering digunakan dalam kes berikut:.
-
Apabila Diberikan Sebagai Hujah kepada Fungsi
- Ia berguna dalam fungsi peringkat tinggi (fungsi yang menerima fungsi lain sebagai argumen) apabila menghantar fungsi pendek dan bersifat sementara.
-
Apabila Menentukan Kunci untuk Menyusun Senarai
- Ia berguna untuk menentukan kriteria penyusunan (kunci) dalam fungsi seperti
sort()
atausorted()
.
- Ia berguna untuk menentukan kriteria penyusunan (kunci) dalam fungsi seperti
Contoh Penggunaan dalam Fungsi Aras Tinggi
Contoh biasa fungsi aras tinggi termasuk map()
, filter()
, dan reduce()
. Fungsi ini mengambil fungsi lain sebagai hujah dan mengaplikasikannya kepada urutan seperti senarai.
1numbers = [1, 2, 3, 4, 5]
2squared = list(map(lambda x: x ** 2, numbers))
3print(squared) # Output: [1, 4, 9, 16, 25]
Dalam contoh ini, fungsi lambda
diberikan kepada fungsi map()
untuk mendarabkan setiap nombor dalam senarai dengan dirinya.
Contoh penggunaan pengisihan senarai
Fungsi lambda
kadangkala boleh digunakan untuk menentukan kunci tersuai semasa mengisih senarai. Sebagai contoh, kod berikut mengisih senarai tuple berdasarkan elemen kedua.
1pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
2pairs.sort(key=lambda pair: pair[1])
3print(pairs)
4# Output: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Dalam contoh ini, fungsi lambda
digunakan untuk mengisih tuple berdasarkan elemen kedua mereka (sebuah string).
filter()
dan lambda
Fungsi filter()
digunakan untuk menapis elemen dalam senarai (atau iterable lain) berdasarkan syarat yang diberikan.
1numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
3print(even_numbers) # Output: [2, 4, 6, 8]
Dalam contoh ini, nombor genap dalam senarai ditapis untuk mencipta senarai baharu.
lambda
dan reduce()
Fungsi reduce()
digunakan untuk merangkum senarai menjadi satu nilai. Ia boleh dilaksanakan dengan mudah menggunakan fungsi lambda
.
1from functools import reduce
2
3numbers = [1, 2, 3, 4, 5]
4product = reduce(lambda x, y: x * y, numbers)
5print(product) # Output: 120
Dalam contoh ini, semua elemen dalam senarai didarab bersama untuk menghasilkan keputusan.
Elakkan menggunakan fungsi lambda
yang kompleks
Kelebihan fungsi lambda
ialah ringkasannya, tetapi ia menjadi sukar dibaca apabila digunakan untuk melaksanakan logik yang kompleks. Oleh itu, adalah sesuai menggunakannya untuk operasi mudah yang boleh diungkapkan dalam satu baris. Bagi operasi yang kompleks, mendefinisikan fungsi dengan def
adalah lebih mudah dibaca dan diselenggarakan.
Sebagai contoh, anda harus mengelakkan menggunakan fungsi lambda
yang kompleks seperti yang berikut.
1# Complex and hard-to-read lambda function
2complex_func = lambda x, y: (x * 2 + y) if x > y else (x + y * 2)
Dalam kes ini, adalah lebih baik menggunakan fungsi yang ditakrifkan dengan def
, seperti ditunjukkan di bawah.
1def complex_func(x, y):
2 if x > y:
3 return x * 2 + y
4 else:
5 return x + y * 2
Kesimpulan
Fungsi lambda
dalam Python adalah alat yang sesuai untuk mendefinisikan fungsi sementara dan ringkas. Fungsi ini sering digunakan dalam fungsi perintah tinggi atau operasi senarai untuk mentakrifkan syarat tertentu secara ringkas. Namun, fungsi lambda
harus dihadkan kepada tugas mudah, dengan fungsi def
lebih disukai untuk logik yang kompleks.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.