Rumah > pembangunan bahagian belakang > Tutorial Python > Tutorial Python - unction

Tutorial Python - unction

DDD
Lepaskan: 2025-01-06 13:52:40
asal
246 orang telah melayarinya

pengenalan

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ini ialah contoh fungsi void (tiada nilai pulangan) dalam Python.

# create a function
def hello():
    print("hello!")

# call the function
hello()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Output

hello!
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Output

6
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

Hujah dan Hujah Kata Kunci

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))
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Output

3
6
24
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk
Salin selepas log masuk

Output

========
name: john
other informations
job: programmer
company: acme inc
========
========
name: doe
other informations
job: programmer
company: acme inc
skills: go,java,php
========
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk
Salin selepas log masuk

Output

===========
items
apple
coffee
milk
other information
payment: cash
===========
===========
items
TV
Camera
other information
payment: cash
delivery: express
===========
Salin selepas log masuk
Salin selepas log masuk

Fungsi Rekursif

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:

  • Kes asas: kes asas mentakrifkan apabila fungsi dihentikan.
  • Hubungan berulang: hubungan ulangan mentakrifkan proses rekursif fungsi.

Dalam contoh ini, pengiraan faktorial dilaksanakan menggunakan fungsi rekursif.

def function_name(args):
    function body
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Output

# create a function
def hello():
    print("hello!")

# call the function
hello()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Fungsi faktorial() digambarkan dalam gambar di bawah ini.

Python Tutorial - unction

Lambda

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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ini ialah contoh fungsi lambda untuk menjumlahkan dua nombor. Fungsi lambda disimpan di dalam pembolehubah yang dipanggil sum_func.

6
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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))
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Peta dan Penapis

Fungsi Peta

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk
Salin selepas log masuk

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
========
Salin selepas log masuk
Salin selepas log masuk

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")
Salin selepas log masuk
Salin selepas log masuk

Fungsi Penapis

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
===========
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

Output

def function_name(args):
    function body
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh - Alih Keluar Kod Pendua

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()
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Terdapat kod pendua untuk proses pengesahan. Untuk mengalih keluar pendua ini, proses pengesahan boleh dibungkus dalam fungsi yang berasingan.

hello!
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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()).

Petua

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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))
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Gunakan dokumentasi untuk menerangkan perihalan fungsi. Dokumentasi boleh ditambah menggunakan sintaks """.

Ini ialah contoh penggunaan dokumentasi di dalam fungsi.

3
6
24
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sumber

  • Argumen dan hujah kata kunci dalam fungsi
  • Ilustrasi fungsi rekursif

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan