Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencegah Fungsi Rekursif daripada Mengembalikan Tiada dalam Python?

Bagaimanakah Saya Boleh Mencegah Fungsi Rekursif daripada Mengembalikan Tiada dalam Python?

DDD
Lepaskan: 2024-12-21 02:21:11
asal
728 orang telah melayarinya

How Can I Prevent Recursive Functions from Returning None in Python?

Menyelesaikan Masalah Tiada Pengembalian dalam Fungsi Rekursif

Apabila berurusan dengan fungsi rekursif, memastikan pengendalian pemulangan yang betul adalah penting untuk mengelakkan nilai Tiada yang tidak dijangka. Pertimbangkan fungsi berikut yang berulang kali menggesa pengguna untuk memasukkan sama ada "a" atau "b":

def get_input():
    my_var = input('Enter "a" or "b": ')

    if my_var != "a" and my_var != "b":
        print('You didn\'t type "a" or "b". Try again.')
        get_input()
    else:
        return my_var

print('got input:', get_input())
Salin selepas log masuk

Apabila pengguna memasukkan "a" atau "b" dengan betul, fungsi itu berfungsi seperti yang diharapkan, tetapi jika mereka memasukkan mana-mana aksara lain, fungsi mencetak mesej ralat dan secara rekursif memanggil dirinya sendiri. Walau bagaimanapun, panggilan rekursif tidak mengembalikan input yang dikumpul dengan betul.

Masalah timbul daripada panggilan rekursif tidak ditamatkan dengan pernyataan kembali apabila input bukan "a" atau "b." Python mentafsir ini sebagai mencapai penghujung fungsi dan secara tersirat mengembalikan Tiada. Tingkah laku ini serupa dengan:

def f(x):
    pass
print(f(20))  # Implicitly returns None
Salin selepas log masuk

Untuk menyelesaikan isu ini, seseorang mesti mengubah suai pernyataan if untuk mengembalikan hasil panggilan get_input() rekursif:

if my_var != "a" and my_var != "b":
    print('You didn\'t type "a" or "b". Try again.')
    return get_input()
Salin selepas log masuk

Dengan memasukkan ini pelarasan, fungsi mengembalikan input dengan betul walaupun apabila pengguna memasukkan aksara yang salah dan kemudian membetulkan input mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Fungsi Rekursif daripada Mengembalikan Tiada dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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