В приведенном ниже коде Вопрос 13a просит, чтобы функция подсчитывала количество гласных в строке. (Мне не нужно называть эту функцию в моей домашней работе.) Но я назвал ее, чтобы проверить ее, и эта часть полностью правильная и работает. Строка может быть как в верхнем, так и в нижнем регистре без пунктуации.Функция для подсчета слов i или более гласных в Python?
Вопрос 13b просит создать словарь. Ключ - это слово в строке (строка содержит несколько слов). Значение - сколько гласных в этом отдельном слове. Вопрос задает вопрос: если слово имеет значение «МЕНЬШЕ» i количество гласных, то добавьте его в словарь (слово с количеством гласных). Эта функция имеет два параметра. Первая из них - строка с пунктуацией NO. Второй параметр представляет количество сколько гласных слово ДОЛЖНО быть добавлено в словарь. Профессор хочет, чтобы я назвал функцию 13а этой функцией частью алгоритма. При этом вывод Вопроса 13a является значением ключа (отдельного слова) в этой задаче. У меня возникли проблемы с этим вопросом, потому что я просто не могу заставить Python добавить вывод слова «13a» (количество гласных слова) на ключ словаря.
А также в приведенном ниже коде, я еще не работал над частью, где я предполагал использовать переменную i.
Вот мой код:
print("Question 13a")
def vowelCount(s):
vowels = 'aeiou'
countVowels = 0
for letter in s.lower():
if letter in vowels:
countVowels += 1
print(countVowels)
print("Question 13b")
def manyVowels(t, i):
my_string = t.split()
my_dict = {}
for word in my_string:
number = vowelCount(word)
my_dict[word].append(number)
print(my_dict)
print(manyVowels('they are endowed by their creator with certain unalienable rights', 2))
Если вы не можете понять этот вопрос, то здесь направления профессора:
Вопрос 13а (10 баллов) буквы а, е, я, о и u - гласные. Никакое другое письмо не является гласным. Напишите функцию с именем vowelCount(), которая берет строку, s, как параметр и возвращает количество содержащихся в ней гласных. Строка s может содержать символы верхнего и нижнего регистра. Например, вызов функции vowelCount ('Amendment') должен возвращать целое число 3, потому что есть 3 вхождения букв «A» и «e».
Вопрос 13b (10 баллов) Напишите функцию с именем manyVowels(), которая принимает тело текста, t и целое число, i, как параметры . Текст t содержит только строчные буквы и пробелы. manyVowels() должен возвращать словарь, в котором ключи являются всеми словами из t, которые содержат по меньшей мере i гласных. Значение, соответствующее каждому ключу, - это количество гласных в нем. Для полного кредита manyVowels() должен вызвать вспомогательную функцию vowelCount() из Вопроса 11a, чтобы определить число гласных в каждом слове . Например, если текст ввода содержит слово «привет», то «привет» должен быть ключом в словаре, а его значение должно быть 2, потому что есть 2 гласных в «привет». Вход: 1. t, текст, состоящий из строчных букв и пробелов 2. i, пороговое число гласных Возврат: словарь пар ключ-значение, в котором ключи являются словами из t, содержащими как минимум i гласные и значение каждой клавиши - это количество содержащихся гласных. Например, следующий результат будет правильным.
text = 'they are endowed by their creator with certain unalienable rights' print(manyVowels(text, 3)) {'certain': 3, 'unalienable': 6, 'creator': 3, 'endowed': 3}
'collections.Counter' может быть очень полезным, особенно потому, что он уже возвращает словарь-подобный объект, который может быть тривиально преобразуется в обычный Dict , В противном случае, пожалуйста, ограничивайте свой вопрос одной конкретной проблемой - мы не будем решать вашу домашнюю проблему. Но если у вас есть одна конкретная проблема и вы не знаете, как это сделать, сообщите нам, что ваша проблема, что вы ожидаете и что произошло. Затем измените свой вопрос. – MSeifert
Мой конкретный вопрос: как добавить результат первой функции в словарь? – Jorgan