Мне 15 лет, и сейчас я занимаюсь GCSE в Computing. Мои знания очень просты, и у меня были некоторые проблемы с куском кода, который я должен написать для «Vowel Worth Calculator», который должен проверять слово и давать ему оценку гласных в зависимости от того, сколько и какие гласные. Я продолжаю ошибаться, и я полностью в тупике, любая помощь будет оценена. Вот мой исходный код:Python 'String Index Out of Range Error'?
Vowel Worth Счетчик
print('Welcome to the Vowel Worth Counter!')
word = input('Please input your word, in lower-case, or type Q to quit.')
if word == 'Q' :
quit()
def vowelcount(word) :
lettercount = int(len(word))
vowelscore = 0
checkcount = 1
position = 0
while lettercount != checkcount :
if word[position] == str('a') :
vowelscore = vowelscore + 5
if word[position] == str('e') :
vowelscore = vowelscore + 4
if word[position] == str('i') :
vowelscore = vowelscore + 5
if word[position] == str('o') :
vowelscore = vowelscore + 5
if word[position] == str('u') :
vowelscore = vowelscore + 5
position = position + 1
if lettercount == checkcount :
print('I have finished calculatiing your Vowel Score.')
print('Your Vowel score is ' + str(vowelscore) + '!')
for x in range (0,1) :
break
vowelcount(word)
Как я уже говорил, любая помощь будет признателен, спасибо.
Вы никогда не меняете 'checkcount', поэтому цикл' while' никогда не может закончиться. –
'while lettercount! = Checkcount'. Вы никогда не изменяете ни один из ваших циклов while, пока вы все еще увеличиваете «позицию». Вот почему вы код умирает – inspectorG4dget
Кроме того, в Python гораздо более обычным является цитировать непосредственно над структурами данных, такими как списки или строки, чем использовать индекс. 'для буквы в слове:' будет питоновой идиомой, по крайней мере, если бы я не собирался использовать более продвинутые конструкции. –