我需要编写一个代码,其中一个字符串包含一个数字,然后将该数字加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
循环更好。