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_valueSebagai 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 + yMemanggil Fungsi
Fungsi yang telah ditakrifkan boleh dipanggil dan digunakan seperti berikut:.
1result = add(3, 4)
2print(result) # Output: 7Komponen Fungsi
-
Nama Fungsi
- Nama fungsi, digunakan semasa memanggilnya.
-
Argumen (Parameter)
- Nama pembolehubah yang menerima data yang dihantar semasa panggilan dibuat. Anda boleh mentakrifkan sifar atau lebih argumen.
-
String Dokumentasi (Docstring)
- Rentetan yang menerangkan tujuan dan penggunaan fungsi. Pilihan.
-
Badan Fungsi
- Blok berturut di mana arahan yang dilaksanakan oleh fungsi ditulis.
-
Nilai Pulangan
- Nilai yang dipulangkan kepada pemanggil menggunakan pernyataan
return. Jikareturndiabaikan,Noneakan dipulangkan secara lalai.
- Nilai yang dipulangkan kepada pemanggil menggunakan pernyataan
Jenis-jenis Argumen
Dalam Python, terdapat beberapa jenis argumen.
- Argumen Posisi
- Cara biasa untuk menyerahkan argumen kepada fungsi.
- Argumen Lalai
- Tetapkan nilai lalai kepada argumen supaya ia boleh diabaikan semasa memanggil fungsi.
1def greet(name, message="Hello"):
2 print(f"{message}, {name}")
3
4greet("Alice") # "Hello, Alice"
5greet("Bob", "Good morning") # "Good morning, Bob"- Argumen Panjang Berubah
argsmenerima pelbagai argumen posisi sebagai tuple, dankwargsmenerimanya sebagai kamus (dictionary).
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: expressionargumen- Menentukan argumen untuk sesuatu fungsi. Beberapa hujah boleh dinyatakan, dipisahkan dengan tanda koma.
ungkapan- Ungkapan yang dinilai berdasarkan argumen. 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: 8Dalam 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: 120Dalam 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 * 2Kesimpulan
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.