← 返回题库
中级

实现订单状态机

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    orders_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    orders = pd.read_csv(StringIO(____))
    TRANSITIONS = {
        '____': ['____', '____'],
        '____': ['____', '____'],
        '____': ['____'],
        '____': [],
        '____': [],
    }
    def can_transition(____):
        return target in TRANSITIONS.get(____)
    def transition(____):
        if can_transition(____):
            return {**order, '____': target}, None
        return order, f"____"
    test_transitions = [
        (____, '____'), (____, '____'), (____, '____'),
        (____, '____'), (____, '____'), (____, '____'),
    ]
    orders_dict = {r['____']: r.to_dict() for _, r in orders.iterrows()}
    for oid, target in test_transitions:
        order = orders_dict.get(____)
        new_order, err = transition(____)
        if err: print(____)
        else:
            orders_dict[oid] = new_order
            print(____)

示例

输入
solve()
期望输出
order=1: pending -> paid OK
order=1: paid -> cancelled OK
order=2: paid -> shipped OK
order=3: shipped -> completed OK
order=4 (completed->completed): ERROR: Invalid: completed -> completed
order=5 (cancelled->shipped): ERROR: Invalid: cancelled -> shipped
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码