下一个版本、谁更新

👁️ 3 人浏览 💬 0 人评论 ❤️ 添加收藏

(parse_ver('1.4.2') = (1,4,2);bump(版本, 位) 把 major/minor/patch 某一位加一、进位后低位归零;next_version(版本, 改动):break→major、feature→minor、fix→patch;newer(a, b) 判 a 是否比 b 新。)

问「2.3.1 改了个 bug 后是几」,以及「1.10.0 比 1.9.0 新吗」:

def parse_ver(s):
    """'1.4.2' → (1, 4, 2),能直接比大小。"""
    return tuple(int(x) for x in s.split("."))


def bump(ver, part):
    """把版本号的某一位加一:part 是 'major'/'minor'/'patch',进位后低位归零。交回新版本字符串。"""
    a, b, c = parse_ver(ver)
    if part == "major":
        return "%d.0.0" % (a + 1)
    if part == "minor":
        return "%d.%d.0" % (a, b + 1)
    return "%d.%d.%d" % (a, b, c + 1)


def next_version(ver, change):
    """按改动类型决定进哪一位:'break'→major、'feature'→minor、'fix'→patch。"""
    part = {"break": "major", "feature": "minor", "fix": "patch"}[change]
    return bump(ver, part)


def newer(a, b):
    """版本 a 比 b 新交回 True。"""
    return parse_ver(a) > parse_ver(b)

print(next_version("2.3.1", "fix") + "/" + str(newer("1.10.0", "1.9.0")))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论