我的教授希望我创建一个函数,该函数返回字符串中的数字总和但不使用任何列表或列表方法.
操作时该功能应如下所示:
>>> sum_numbers('34 3 542 11')
590
Run Code Online (Sandbox Code Playgroud)
通常,使用列表和列表方法时,很容易创建这样的函数.但试图在不使用它们的情况下这样做是一场噩梦.
我尝试了以下代码,但它们不起作用:
>>> def sum_numbers(s):
for i in range(len(s)):
int(i)
total = s[i] + s[i]
return total
>>> sum_numbers('1 2 3')
'11'
Run Code Online (Sandbox Code Playgroud)
不是将1,2和3全部转换为整数并加在一起,而是将字符串设为'11'.换句话说,字符串中的数字仍未转换为整数.
我也试过使用一个map()函数,但我得到了相同的结果:
>>> def sum_numbers(s):
for i in range(len(s)):
map(int, s[i])
total = s[i] + s[i]
return total
>>> sum_numbers('1 2 3')
'11'
Run Code Online (Sandbox Code Playgroud) 对于我的赋值,我必须创建一个函数,该函数返回一个与给定字符串相同但删除了数字的新字符串.
示例:删除数字('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]: …Run Code Online (Sandbox Code Playgroud)