查找字符串中的数字,加1并替换 - python

我需要编写一个代码,其中一个字符串包含一个数字,然后将该数字加1,然后在初始字符串输入中将其打印出来。

它应该像这样工作

>>>addNumber('I slept 3 hours')
what number would you like to increment? 3
I slept 4 hours
>>>addNumber('I have 366 friends on facebook')
what number would you like to increment? 6
I have 377 friends on facebook

到目前为止,我已经知道了,但是我知道这是错误的,老实说,我不知道该怎么做。

def incrementNumbers(statement):
    number1=(int(input('What number would you like to increment?')))
    number2 = number1 +1
    i=[]
    for numbers in statement:
        if numbers.isdigit():
            i.append(numbers)
            statement.replace(numbers,number2)

python大神给出的解决方案

您的代码中可能的错误是:

您正在尝试直接用int中的string类型数据替换。
同样,仅检查numbers.isdigit()会修改所有数字,而与您指定要修改的内容无关。

为了使代码正常运行,可能需要对其进行更正:

def incrementNumbers(statement):
    number1 = int(input('What number would you like to increment?'))
    number2 = number1 +1
    i=[]
    for numbers in statement:
        if numbers.isdigit() and int(numbers) == number1:
            i.append(numbers)
            statement.replace(numbers,str(number2))

您还可以将incrementNumbers(statement)函数更改为:

def incrementNumbers(statement):
    number1 = input('What number would you like to increment?')
    number2 = str(int(number1)+1)
    statement = statement.replace(number1,number2)
    return statement

我认为这比使用for循环更好。