gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:51:10 26 4
gpt4 key购买 nike

我需要编写一个代码,其中一个字符串包含一个数字,然后这个数字递增 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)

最佳答案

您可以使用 re.sub这里

>>> import re
>>> s = 'I have 366 friends on facebook'
>>> def addone(obj):
... val = int(obj.group(1))
... return str(val+1)
...
>>> i = raw_input('what number would you like to increment?')
what number would you like to increment?6
>>> re.sub('({})'.format(i),addone,s)
'I have 377 friends on facebook'

另一个例子

>>> s = 'I slept 3 hours'
>>> i = raw_input('what number would you like to increment?')
what number would you like to increment?3
>>> re.sub('({})'.format(i),addone,s)
'I slept 4 hours'

你可以像这样定义你的函数

def addNumber(s):
def addone(obj):
val = int(obj.group(1))
return str(val+1)

i = raw_input('what number would you like to increment?')
return(re.sub('({})'.format(i),addone,s))

不过我建议你有一个验证函数

i = raw_input('what number would you like to increment?')
if 0<int(i)<9:
return(re.sub('({})'.format(i),addone,s))
else:
return "Number out of range"

这将防止用户输入您范围之外的值

关于python - 在字符串中查找数字,加 1 并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com