Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Fungsi Pengesahan Input Rekursif Saya Tidak Kembali Daripada 'a' atau 'b'?

Mengapa Fungsi Pengesahan Input Rekursif Saya Tidak Kembali Daripada 'a' atau 'b'?

DDD
Lepaskan: 2024-12-21 01:30:09
asal
181 orang telah melayarinya

Why Does My Recursive Input Validation Function Return None Instead of 'a' or 'b'?

Fungsi Rekursif Tidak Mengembalikan: Masalah dan Penyelesaian

Masalah:

Fungsi rekursif direka bentuk untuk mengesahkan input pengguna dan mengembalikan "a" atau "b" tanpa diduga mengembalikan Tiada apabila input yang salah disediakan dan kemudian diperbetulkan.

Kod Fungsi:

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

Gelagat Yang Dijangka:

Apabila pengguna memasukkan input yang sah ("a" atau "b"), fungsi harus mengembalikan nilai my_var.

Gelagat Sebenar:

Apabila pengguna memasukkan input tidak sah dan kemudian memasukkan "a" atau "b", fungsi mengembalikan Tiada dan bukannya nilai input yang sah .

Sebab:

Dalam rekursif panggil dalam pernyataan if:

get_input()
Salin selepas log masuk

Nilai pulangan panggilan rekursif tidak dikembalikan oleh fungsi. Sebaliknya, fungsi itu jatuh pada penghujungnya tanpa mengembalikan apa-apa secara eksplisit. Dalam Python, kehilangan penghujung fungsi secara tersirat mengembalikan Tiada.

Penyelesaian:

Untuk menyelesaikan isu ini, kembalikan nilai pulangan panggilan rekursif dalam pernyataan if:

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

Ini memastikan bahawa apabila input tidak sah disediakan dan diperbetulkan, fungsi mengembalikan nilai dengan betul my_var, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Fungsi Pengesahan Input Rekursif Saya Tidak Kembali Daripada 'a' atau 'b'?. 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