Как мне найти, где гласные находятся в строковом вводе и сделать так, чтобы они печатались в выводе? - PullRequest
0 голосов
/ 07 ноября 2019

Я должен написать скрипт, в котором он запрашивает у пользователя строку, код берет строку и находит, где находится каждое значение. Например, если я добавлю «яблоко», выходные данные будут 0 и 4. Сценарий должен иметь две функции, где первая запрашивает ввод пользователя, а вторая находит гласные.

Я спросил своего учителя, и он привел меня к тому, что я имею сейчас, но я не могу получить это оттуда.

def askForString():
    theString=str(input("Please enter a string: "))
    theString=theString.lower()
    return theString

def findVowels(TheString,vowels):
    for i in range(len(TheString)):
        if TheString[i] in vowels:
            TheString=TheString[i]
            return [i]

def main():
    TheString=askForString()
    vowels="aeiou"
    TheVowels=findVowels(TheString,vowels)
    print(TheVowels)

main()

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Этого можно было бы удобно сделать с помощью слова, если вы дошли до этого:

def vowelFinder(mystring):
    vowels = ('a','e','i','o','u')              #tuples are preferable for efficiency
    results = {}                                #dict for {vowel:[position list]} pairs
    for x in vowels:
        for y in range(len(mystring)):
            if x in results.keys() and x == mystring[y].lower():
                results[x].append(y)                              #alter a dict entry
            elif x = mystring[y].lower():
                results.update({x:[y]}                            #make a dict entry
    return results

Обратите внимание на использование str.lower (), чтобы избежать пропущенных заглавных букв. Тогда, если мы попробуем что-то вроде:

vowelFinder('I have asked my teacher, and he led me to what I have now, but I cannot get it from there.')
{'a': [3, 7, 18, 25, 44, 50, 66],
 'e': [5, 10, 17, 21, 30, 33, 37, 52, 73, 86, 88],
 'i': [0, 47, 63, 76],
 'o': [40, 55, 69, 81],
 'u': [60]}
0 голосов
/ 07 ноября 2019
string = input("Enter a line of text: ")
vowels = set("aeiou")
for index, char in enumerate(string):
    if char in vowels:
        print(index)

Если вы введете «яблоко», он возвращает «0» и «4».

Если вы введете «укулеле», он возвращает «0», «2», «4»,'6'.

Просто разделите вышеперечисленное на две функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...