Fungsi dalam Python

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

  1. Nama Fungsi: Nama fungsi yang digunakan untuk memanggilnya.

  2. Argumen (Parameter): Nama pemboleh ubah yang menerima data yang dihantar semasa pemanggilan. Anda boleh mentakrifkan sifar atau lebih argumen.

  3. String Dokumentasi (Docstring): Suatu string yang digunakan untuk menerangkan tujuan dan penggunaan fungsi. Pilihan.

  4. Badan Fungsi: Blok bertakuk di mana arahan yang dijalankan oleh fungsi ditulis.

  5. Nilai Pemulangan: Nilai yang dipulangkan kepada pemanggil menggunakan kenyataan return. Jika return diabaikan, None akan dipulangkan secara lalai.

Jenis-jenis Argumen

Dalam Python, terdapat beberapa jenis argumen.

  1. Argumen Posisi: Cara standard untuk menghantar argumen kepada fungsi.
  2. 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"
  1. 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:.

  1. 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.
  2. Apabila Menentukan Kunci untuk Menyusun Senarai

    • Ia berguna untuk menentukan kriteria penyusunan (kunci) dalam fungsi seperti sort() atau sorted().

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.

YouTube Video