Функция, которая возвращает список букв в том же порядке, за исключением того, что с любыми гласными отображается как *, а любые l отображаются как% - PullRequest
0 голосов
/ 28 мая 2018

Напишите функцию, которая принимает список букв в качестве аргумента.Функция должна возвращать список букв в том же порядке, за исключением того, что с любыми гласными они отображаются как *, а любые буквы L - как%.Вот мое решение, скажите, пожалуйста, почему оно не работает:

lst [‘s’, ‘a’, ‘l’, ‘l’, ‘y’]

def letter_list(word):
newLetters = []
    for char in range(0, len(word) -1):
    if char in ‘aeiou’: 
        char = “ * “  
        if char.lower() == ‘l’  char = ‘%’ : 
          newLetters = newLetters + char
return newLetters

print letter_list(“Sally”)

Ответы [ 3 ]

0 голосов
/ 28 мая 2018
def letter_list(word):
    newLetters = word.lower()
    newLetters = newLetters.replace("a", "*").replace("e", "*").replace("i", "*").replace("o", "*").replace("u", "*").replace("l", "%")
    return newLetters

print(letter_list("Sally"))
0 голосов
/ 28 мая 2018

Ваш код не работает, потому что вы используете все неправильные маркеры для строк и символов.Кроме того, вам:

  • не хватает = между lst и его гласными
  • используйте вместо "
  • используйте и вместо '

и ваш отступ неверен - вы должны делать отступы для всех вещей, которые принадлежат вашей функции (и вы должны делать отступ последовательно, а не на 4 символа, затем вкладки, затем 2 символа и т. д.)

Также вы можете использовать понимание:

def letter_list(word):
    return ''.join( c if c not in 'aeiou' else '*' for c in word).replace('l','%')
                    # use the character if not in aeiou else *  
                    # replace l after the fact                     

print(letter_list("Sally"))

Вывод:

S*%%y
0 голосов
/ 28 мая 2018

Существует некоторая двусмысленность с вашим вопросом и вашим решением.Вы говорите, что функция будет принимать список букв / символов, но вы отправляете все слово.

Вот решение:

def letter_list(word):
    newLetters = []
    for char in word:
        if char in "aeiou":
            char = "*"
        if char.lower() == 'l':
            char = '%'
        newLetters.append(char)
    return newLetters

# sending word as list of chars
print(letter_list(list("Sally")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...