gpt4 book ai didi

python - 将版本号更改为个位数python

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:24 24 4
gpt4 key购买 nike

我在这样的文件中有一个版本号:

Testing x.x.x.x

所以我像这样捕获它:

import re

def increment(match):
# convert the four matches to integers
a,b,c,d = [int(x) for x in match.groups()]
# return the replacement string
return f'{a}.{b}.{c}.{d}'

lines = open('file.txt', 'r').readlines()
lines[3] = re.sub(r"\b(\d+)\.(\d+)\.(\d+)\.(\d+)\b", increment, lines[3])

我想这样做,如果最后一位是 9... 然后将其更改为 0,然后将前一位更改为 1。所以 1.1.1.9 更改为 1.1.2.0

我是这样做的:

def increment(match):
# convert the four matches to integers
a,b,c,d = [int(x) for x in match.groups()]
# return the replacement string
if (d == 9):
return f'{a}.{b}.{c+1}.{0}'
elif (c == 9):
return f'{a}.{b+1}.{0}.{0}'
elif (b == 9):
return f'{a+1}.{0}.{0}.{0}'

问题发生在其 1.1.9.91.9.9.9 时。多个数字需要四舍五入的地方。我该如何处理这个问题?

最佳答案

使用整数加法?

def increment(match):
# convert the four matches to integers
a,b,c,d = [int(x) for x in match.groups()]

*a,b,c,d = [int(x) for x in str(a*1000 + b*100 + c*10 + d + 1)]
a = ''.join(map(str,a)) # fix for 2 digit 'a'
# return the replacement string
return f'{a}.{b}.{c}.{d}'

关于python - 将版本号更改为个位数python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53960595/

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