Fungsi rekursif tidak mengembalikan Benar atau Salah, tetapi mengalir dengan benar dan berfungsi?

Begini cara pertanyaannya diutarakan: Tulis fungsi rekursif yang disebut huruf ganda dengan parameter tunggal astr, yaitu string. Fungsi ini mengembalikan True jika astr adalah string yang berisi “huruf ganda” (dua kemunculan berturut-turut dari huruf yang sama) dan False jika tidak. Misalnya, huruf ganda (“halo”) menghasilkan True, sedangkan huruf ganda (“hai”) menghasilkan False.

-- Tidak meminta siapa pun melakukan pekerjaan itu untuk saya, tapi inilah yang saya punya. Saya tahu itu mengalir dengan benar, seolah-olah saya mengganti return True dengan Print('True') dan sebaliknya untuk False, itu akan mencetaknya. Apakah fungsi rekursif tidak berfungsi dengan baik dengan nilai boolean atau apakah saya melewatkan sesuatu yang sangat jelas?

def double_letters(astr):
    if len(astr) >= 2:
        if astr[0] == astr[1]:
            return True
        else:
            double_letters(astr[1:])
    else:
        return(False)

person TheMuffinMan834    schedule 01.11.2013    source sumber


Jawaban (2)


        else:
            return double_letters(astr[1:])

Jika tidak, Anda memanggil fungsi Anda secara rekursif, tetapi Anda membuang nilai kembaliannya, dan fungsi Anda sebenarnya mengembalikan None.

person Matteo Italia    schedule 01.11.2013
comment
Itu memang benar, terima kasih! Saya akan memilih Anda semua tetapi saya masih baru di situs ini, sekali lagi terima kasih! - person TheMuffinMan834; 01.11.2013

double_letters(astr[1:])

dalam satu jalur, dengan sendirinya, tidak banyak membantu. Apakah maksud Anda return double_letters(astr[1:])?

person Ry-♦    schedule 01.11.2013