#python #string #function #count
#python #строка #функция #подсчет
Вопрос:
Это школьное задание, которое ставит меня в тупик. Он должен включать основную функцию.
Напишите программу, которая предлагает пользователю ввести строку, затем отправляет строку в функцию с именем countVowels(stringToCheck), которая определяет количество гласных в строке и возвращает это значение.
def main():
print('This program will calculate the number of vowels in a string of characters.')
stringInput = input('Enter a string: ')
countVowels(stringInput)
def countVowels(stringToCheck):
vowels = "aeiou"
for currentChar in stringToCheck:
if stringToCheck in vowels:
count = 0
count = count 1
print('This string contains', count, 'vowels.')
main()
Комментарии:
1. пожалуйста, отформатируйте свой код как code (« вместо **)
2. В чем ваш вопрос?
currentChar
не используется. Вероятно, вам следует его использовать.
Ответ №1:
Я внес пару изменений в ваш код
- вы перебирали StringToCheck, поэтому он проверял, состоит ли вся строка из гласных, а не только из одного символа
- оператор print находился в цикле for, поэтому он выводил количество гласных для каждого цикла
- вы устанавливаете значение count равным 0 в каждом цикле, что сводит на нет точку подсчета
def main():
print('This program will calculate the number of vowels in a string of characters.')
stringInput = input('Enter a string: ')
countVowels(stringInput)
def countVowels(stringToCheck):
vowels = "aeiou"
count = 0
for currentChar in stringToCheck:
if currentChar in vowels:
count = count 1
print('This string contains', count, 'vowels.')
main()
Комментарии:
1. Я изменил местоположение count = 0, как у вас здесь. Я никогда не публиковал здесь и случайно отрезал верхнюю часть, скажем, def main(): проблемы, с которыми я все еще сталкиваюсь, заключаются в том, что учитель требует для этого def main() . Он также хочет, чтобы вывод отображался следующим образом: «Строка содержит 3 гласных». Вместо этого мой выводится как «Эта строка содержит 1 гласную». и «Эта строка содержит 2 гласных». Когда ввод eerr по примеру
2. я добавил def main обратно после того, как увидел вашу правку. Повторная печать происходит потому, что у вас изначально был оператор print в цикле for (я просто изменил отступ для вас)
Ответ №2:
Я внес некоторые изменения в ваш код:
count = 0
def main():
print('This program will calculate the number of vowels in a string of characters.')
stringInput = input('Enter a string: ')
countVowels(stringInput)
def countVowels(stringToCheck):
count = 0
vowels = ["a", "e", "i", "o", "u"]
for currentChar in stringToCheck:
for CurrentElement in vowels:
if currentChar == element:
count = count 1
print('This string contains', count, 'vowels.')
main()
Давайте рассмотрим, что я сделал.
Сначала я изменил vowel
переменную на список, поскольку таким образом проще и эффективнее хранить несколько значений. В функции countVowels()
я добавил цикл for, чтобы проверить, находится ли значение currentChar
в currentElement
vowels
переменной. Если это так, оно увеличивается count
на единицу.
Я протестировал это, и это работает для меня.
Удачи!