3 回答
TA贡献1801条经验 获得超16个赞
试试这个 :
s = ' ABcsad f!,'
def norm(s):
return ''.join(i for i in s.lower() if i.isalpha())
print(norm(s))
输出:
'abcsadf'
TA贡献1735条经验 获得超5个赞
这是你出错的地方
您将 return 放在 for 循环中。Return 退出整个
norm函数,而不是让 for 循环完成。它需要搬到外面。len(s) + 1导致超出范围的错误。它应该只是len(s)当您要删除空格时,
s[i].isspace()应检查是否为真。如果你想要所有的小写,你需要
s[i]做s[i].lower()您可以使用
b += ...但不能在其自己的返回语句中使用它。无论如何,这无关紧要,因为您不应该在那里使用 return 。
def norm(s):
b=''
for i in range(0,len(s)):
if (s[i].isalpha() is False) or (s[i].isspace() is True):
b += ""
else:
b += s[i].lower()
i = i+1
return b
s = ' ABcsad f!,'
print(norm(s))
TA贡献1744条经验 获得超4个赞
可能与正则表达式:
import re
mystring = ' ABcsad f!,'
print (re.sub('[^A-Za-z0-9]+', '', mystring)).lower()
输出:
abcsadf
添加回答
举报
