中级
实现订单状态机
未完成
中级参考
代码结构已给出,请填写 ____ 处
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
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199