我试图让以下代码正常工作,它应该从用户输入的文本字符串中删除元音。
def isVowel(text):
if text in ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"):
return True
def withoutVowels(text):
for char in text:
if(isVowel == True):
text = text.replace(char, "")
return text
isVowel 函数工作正常,但是当我使用它时它似乎无法正确评估,这是为什么?
if (isVowel == True):
应该
if isVowel(char):
isVowel
是一个函数对象。isVowel == True
永远是假的。
请注意,您也可以更快、更简单地执行此操作字符串翻译.
In [90]: 'Abracadabra'.translate(None, 'aeiouAEIOU')
Out[90]: 'brcdbr'
或者,(正如 EOL 指出的那样)使用正则表达式:
In [93]: import re
In [95]: re.sub(r'(?i)[aeiou]', '', 'Abracadabra')
Out[95]: 'brcdbr'
然而,str.translate
在这种情况下更快:
In [94]: %timeit 'Abracadabra'.translate(None, 'aeiouAEIOU')
1000000 loops, best of 3: 316 ns per loop
In [96]: %timeit re.sub(r'(?i)[aeiou]', '', 'Abracadabra')
100000 loops, best of 3: 2.26 us per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)