Fungsi ini ialah unit boleh panggil yang mengandungi arahan, bertujuan untuk mengurangkan pertindihan kod dan mengatur tugas yang rumit. Terdapat dua jenis: fungsi void (tiada nilai pulangan) dan fungsi yang mengembalikan nilai.
Ini ialah struktur asas fungsi dalam Python.
def function_name(args): function body
Ini ialah contoh fungsi void (tiada nilai pulangan) dalam Python.
# create a function def hello(): print("hello!") # call the function hello()
Output
hello!
Berdasarkan kod di atas, fungsi yang dipanggil hello() dicipta. Fungsi dipanggil dengan menyatakan nama fungsi diikuti dengan kurungan ().
Ini ialah contoh fa unction dengan nilai pulangan.
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
Output
6
Berdasarkan kod di atas, fungsi yang dipanggil add() dicipta untuk menjumlahkan dua nombor. Nilai pulangan fungsi add() disimpan di dalam pembolehubah hasil.
Apabila bekerja dengan fungsi nilai pulangan, pastikan nilai yang dikembalikan sedang digunakan.
Fungsi dalam Python boleh mengambil berbilang argumen secara dinamik. Terdapat dua pendekatan untuk melaksanakan berbilang argumen dalam fungsi:
Argumen: berbilang argumen dilaksanakan dalam fungsi tanpa menyatakan kata kunci. hujah boleh dilaksanakan menggunakan *args.
Argumen kata kunci: berbilang argumen dilaksanakan dalam fungsi dengan kata kunci yang ditentukan. hujah kata kunci boleh dilaksanakan menggunakan **kwargs.
Kedua-dua argumen dan argumen kata kunci mesti terletak di kedudukan terakhir definisi argumen dalam fungsi.
Ini ialah contoh pelaksanaan berbilang argumen menggunakan pendekatan argumen untuk mengira jumlah nombor secara dinamik.
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
Output
3 6 24
Berdasarkan kod di atas, fungsi sum() boleh dipanggil dengan bilangan parameter yang berbeza.
Ini ialah contoh pelaksanaan berbilang argumen menggunakan pendekatan argumen kata kunci.
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
Output
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
Berdasarkan kod di atas, fungsi display_info() boleh dipanggil dengan bilangan parameter yang berbeza. Dengan menggunakan **kwargs, parameter boleh ditakrifkan dengan kata kunci.
Kedua-dua hujah dan hujah kata kunci boleh digunakan bersama. Ini adalah contoh.
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
Output
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
Fungsi rekursif ialah fungsi yang memanggil dirinya sendiri apabila menyelesaikan tugasnya. Fungsi rekursif boleh menyelesaikan banyak masalah termasuk nombor faktorial, jujukan Fibonacci dan lain-lain.
Terdapat dua komponen utama dalam fungsi rekursif:
Dalam contoh ini, pengiraan faktorial dilaksanakan menggunakan fungsi rekursif.
def function_name(args): function body
Output
# create a function def hello(): print("hello!") # call the function hello()
Mari kita lihat lebih dekat fungsi faktorial(). Terdapat dua komponen yang terlibat dalam fungsi ini:
huruf asas: pelaksanaan fungsi ditamatkan jika nilai n bersamaan dengan 0 atau 1.
hubungan berulang: fungsi dilaksanakan jika nilai n lebih besar daripada 1.
hello!
Fungsi faktorial() digambarkan dalam gambar di bawah ini.
Lambda ialah fungsi tanpa nama. Lambda boleh mengandungi banyak hujah seperti fungsi secara umum. Fungsi lambda sesuai untuk mencipta fungsi kecil yang mengembalikan nilai secara langsung.
Ini ialah contoh fungsi sum().
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
Ini ialah contoh fungsi lambda untuk menjumlahkan dua nombor. Fungsi lambda disimpan di dalam pembolehubah yang dipanggil sum_func.
6
Untuk menggunakan fungsi lambda, panggil fungsi dengan nama pembolehubahnya.
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
Fungsi map() melaksanakan fungsi panggil balik yang disediakan untuk setiap item di dalam senarai.
Ini ialah contoh fungsi map() untuk mendarab setiap nombor dengan 3.
3 6 24
Output
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
Berdasarkan kod di atas, fungsi triple() bertindak sebagai panggilan balik untuk fungsi map() yang bermaksud fungsi triple() dipanggil untuk setiap item dalam senarai nombor. Kemudian, hasil fungsi map() ditukar kepada senarai dan kemudian disimpan di dalam pembolehubah yang dipanggil hasil.
Contoh di atas boleh dipermudahkan menggunakan fungsi lambda.
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
Output
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
Fungsi penapis() memilih item di dalam senarai berdasarkan fungsi panggil balik yang diberikan. Fungsi penapis() sesuai untuk menapis item di dalam senarai dengan menggunakan fungsi panggil balik yang disediakan. Fungsi penapis() memerlukan fungsi panggil balik yang mengembalikan nilai boolean.
Ini ialah contoh fungsi penapis() untuk memilih nombor genap sahaja dalam senarai.
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
Output
def factorial(n): if n == 0 or n == 1: return 1 else: return n * factorial(n-1) # call the function result = factorial(5) print(result)
Berdasarkan kod di atas, fungsi filter() menggunakan is_even() sebagai fungsi panggil balik untuk memilih nombor genap daripada senarai.
Contoh ini boleh dipermudahkan menggunakan fungsi lambda.
120
Output
def function_name(args): function body
Fungsi ini boleh digunakan untuk mengalih keluar kod pendua. Sebagai contoh, terdapat dua fungsi yang dipanggil register() dan login(). Kedua-dua fungsi menggunakan proses pengesahan.
# create a function def hello(): print("hello!") # call the function hello()
Terdapat kod pendua untuk proses pengesahan. Untuk mengalih keluar pendua ini, proses pengesahan boleh dibungkus dalam fungsi yang berasingan.
hello!
Fungsi validate() boleh digunakan di dalam fungsi register() dan login().
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
Berdasarkan kod di atas, kod lebih bersih dan mudah diubah suai kerana jika peraturan pengesahan tambahan dikemas kini, peraturan pengesahan boleh dikemas kini di satu tempat (di dalam fungsi validate()).
Ini ialah petua utama apabila bekerja dengan fungsi dalam Python.
Fungsi mesti menyelesaikan satu tugasan. Jika berbilang tugasan diperlukan, cipta fungsi berasingan untuk tugasan lain.
Bilangan maksimum argumen fungsi ialah 3. Jika argumen kelihatan lebih daripada 3, pertimbangkan untuk menggunakan objek data khusus untuk argumen fungsi.
Bilangan maksimum argumen fungsi nampaknya boleh dipertikaikan.
Ini ialah contoh fungsi create_account() menggunakan argumen.
6
Fungsi create_account() boleh diubah suai untuk menggunakan objek data untuk kod yang lebih bersih.
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
Ini ialah contoh penggunaan dokumentasi di dalam fungsi.
3 6 24
Saya harap artikel ini membantu anda mempelajari Python. Jika anda mempunyai sebarang maklum balas, sila beritahu saya di bahagian komen.
Atas ialah kandungan terperinci Tutorial Python - unction. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!