【发布时间】:2017-02-15 19:40:55
【问题描述】:
对于我的作业,我必须创建一个函数,该函数返回一个与给定字符串相同但删除了数字的新字符串。
示例:remove digits('abc123') 将返回字符串 'abc'。
我已经尝试了几乎所有我能想到的方法,但它不能正常工作:(
def test(str):
for ch in str:
num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
if ch == num[0]:
return str.replace(ch, '')
elif ch == num[1]:
return str.replace(ch, '')
elif ch == num[2]:
return str.replace(ch, '')
elif ch == num[3]:
return str.replace(ch, '')
elif ch == num[4]:
return str.replace(ch, '')
elif ch == num[5]:
return str.replace(ch, '')
elif ch == num[6]:
return str.replace(ch, '')
elif ch == num[7]:
return str.replace(ch, '')
elif ch == num[8]:
return str.replace(ch, '')
我输入 test('abc123'),期望输出是 'abc'。但相反,我得到 'abc23' 作为我的输出。
在其他尝试中,同样的问题:
def test(str):
for char in str:
num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
if char in list(num):
return str.replace(char, '', len(str))
我得到相同的结果。
谁能帮帮我?这将不胜感激。
【问题讨论】:
-
这是因为当您第一次遇到数字时,您正在从功能中返回。
return停止执行并退出函数! -
另外,您可以检查
char in "0123456789"是否会简化您的代码。