← 返回题库
初级

实现屏幕状态枚举验证

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
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)}
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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