初级
实现屏幕状态枚举验证
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd
scr_csv = open_url("https://data.zuihe.com/dbd/ms-adlift/state_00/screens.csv").read()
screens = pd.read_csv(StringIO(scr_csv))
VALID = {'online','offline','fault','maintenance'}
TRANSITIONS = {'online':['offline','fault','maintenance'],'offline':['online','maintenance'],'fault':['maintenance','offline'],'maintenance':['online','offline']}
def validate(s): return s in VALID
def can_transit(f, t): return t in TRANSITIONS.get(f, [])
for s in ['online','offline','fault','maintenance','unknown']:
print(" "+s+": valid="+str(validate(s)))
print("Transitions:")
for f, tos in TRANSITIONS.items():
print(" "+f+" -> "+str(tos))
print("Status dist: "+str(dict(screens.groupby('status').size())))
示例
输入
solve()
期望输出
online: valid=True
offline: valid=True
fault: valid=True
maintenance: valid=True
unknown: valid=False
Transitions:
online -> ['offline', 'fault', 'maintenance']
offline -> ['online', 'maintenance']
fault -> ['maintenance', 'offline']
maintenance -> ['online', 'offline']
Status dist: {'fault': np.int64(10), 'maintenance': np.int64(19), 'offline': np.int64(22), 'online': np.int64(129)}
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199