试图只查找字符串中的数字的错误?

时间:2016-10-22 03:40:43

标签: python

假设接受一个字符串例如" Maroon 5"然后只返回语句中的数字。在这种情况下,它是" 5"但我没有输出。谢谢!

a1 = c(1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5, 5) 

3 个答案:

答案 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])