2015-10-17 3 views
-1

Итак, предположим, что я уже определил функцию, называемую vowel_call, которая выделяет только гласные из строки, как я могу интегрировать эту функцию в другую функцию, называемую nonvolesels, чтобы возвращать строку из только невыпущенных строк из общая строка?Функция: Возврат строки неволокна

def nonvowels (word: str) -> str: 
    result = '' 
    for x in word: 
    if vowel_call(x) == False: 
     result = result + x 
     return result 
assert nonvowels('book') == 'bk' 
assert nonvowels('giraffe') == 'grff' 

Я попытался код без заявления утверждает, и Python только возвращает первый гласный фразы: (nonvowels («джина») = «г»), но не «дп». С помощью операторов assert возникает ошибка. Что мне нужно сделать, чтобы исправить код?

+0

"vowel_call, что вытягивает только гласные из строки" - ват? –

ответ

0

Ваша функция возвращается слишком рано. Уменьшите отступ в операторе return вне цикла

0

Является ли ваш оператор return внутри вашего оператора if? Если да, это может быть вашей проблемой для возвращения только первого негласного письма? И метод vowel_call возвращает false только тогда, когда буква не является гласным? Проверьте первое предложение, если это не ваша проблема, сообщите мне.

0

Вы возвращаетесь внутри цикла в первый раз, когда if vowel_call(x) == False оценивает значение «Истина», вам нужно будет переместить свое возвращение за пределы цикла после того, как вы проверили каждый символ в строке.

Но самый простой способ, чтобы возвращать список понимание с str.join:

def nonvowels (word: str) -> str: 
    return "".join([x for x in word if not vowel_call(x)]) 
0
You can also with set operations find what you need. 

sentence = 'It is a nice day!' 

def find_vowels(s,): 
import re 
s = s.lower() 
return set(re.findall(r'[aoiue]',s)) 

>>>find_vowels(sentence) 
{'a', 'e', 'i'} 

s_sentence = set(sentence.lower()) 

>>>non_vowels = s_sentence - find_vowels(sentence) - set(string.punctuation) - set(string.whitespace) 

{'c', 'y', 'n', 't', 's', 'd'} 
+0

Как бы вы использовали набор, когда OP имеет повторяющиеся значения в ожидаемом выходе? –

Смежные вопросы