假设接受一个字符串例如" Maroon 5"然后只返回语句中的数字。在这种情况下,它是" 5"但我没有输出。谢谢!
a1 = c(1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5, 5)
答案 0 :(得分:0)
您的代码中有两个重要错误。一个是,一旦你找到了一个数字,你就会跳回到字符串的开头:
j = 0
相反,你想从那里继续:
j = i
另一个更大的问题是你有一个无限循环。如果str[j]
是数字,则第二个循环可以无限期地继续,因为将found2
设置为False不会结束循环。代码应该是
while not found2 and j<len(str):
if str[j] not in "0123456789":
found2 = True
else:
j = j + 1
答案 1 :(得分:0)
def findNumbers(str):
for i in range(0,len(str)):
if (str[i].isdigit()):
print str[i]
findNumbers("Maroon 5")
应打印数字5
答案 2 :(得分:0)
您可以尝试这种方式:这将返回包含数字及其索引的元组列表
def findNumbers(string):
num = '1234567890'
return ([(string[x], x) for x in range(len(string)) if string[x] in num])