그래서 저는 파이썬을 배우며 문장에서 모음의 수를 계산하려고합니다. count() 함수와 반복을 사용하는 방법을 알았지 만 지금은 재귀를 사용하여 수행하려고합니다. 다음 메서드를 사용하면 "IndexError : 문자열 인덱스가 범위를 벗어났습니다."오류가 발생합니다. 여기 내 코드가있다.IndexError : String 인덱스가 재귀 함수의 범위를 벗어났습니다.
sentence = input(": ")
def count_vowels_recursive(sentence):
total = 0
if sentence[0] == "a" or sentence[0] == "e" or sentence[0] == "i" or sentence[0] == "o" or sentence[0] == "u":
total = total + 1 + count_vowels_recursive(sentence[1:])
else:
total = total + count_vowels_recursive(sentence[1:])
return the_sum
print(count_vowels_recursive(sentence))
다음은 이전 두 가지 해결책입니다.
def count_vowels(sentence):
a = sentence.count("a")
b = sentence.count("e")
c = sentence.count("i")
d = sentence.count("o")
e = sentence.count("i")
return (a+b+c+d+e)
def count_vowels_iterative(sentence):
a_ = 0
e_ = 0
i_ = 0
o_ = 0
u_ = 0
for i in range(len(sentence)):
if "a" == sentence[i]:
a_ = a_ + 1
elif "e" == sentence[i]:
e_ = e_ + 1
elif "i" == sentence[i]:
i_ = i_ + 1
elif "o" == sentence[i]:
o_ = o_ + 1
elif "u" == sentence[i]:
u_ = u_ + 1
else:
continue
return (a_ + e_ + i_ + o_ + u_)
힌트 : 재귀가 문자열의 끝에 도달하여'문장 [0]'을 테스트하려고하면 어떻게됩니까? –