← 返回题库
初级

实现信号强度四级分级

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    hb_csv = open_url("https://data.zuihe.com/dbd/ms-adlift/state_01/heartbeat_logs.csv").read()
    hb = pd.read_csv(StringIO(hb_csv))
    def grade(rssi):
        if rssi >= -65: return 'excellent'
        if rssi >= -75: return 'good'
        if rssi >= -85: return 'fair'
        return 'poor'
    hb = hb.copy()
    hb['grade'] = hb['signal_strength'].apply(grade)
    dist = hb.groupby('grade').size(); total = len(hb)
    print("Signal distribution:")
    for g in ['excellent','good','fair','poor']:
        c = dist.get(g,0)
        print("  "+g+": "+str(c)+" ("+str(round(c/total*100,1))+"%)")
    for v in [-55.0,-70.0,-82.0,-95.0]:
        print("  "+str(v)+"dBm -> "+grade(v))

示例

输入
solve()
期望输出
Signal distribution:
  excellent: 2178 (48.1%)
  good: 1071 (23.6%)
  fair: 670 (14.8%)
  poor: 613 (13.5%)
  -55.0dBm -> excellent
  -70.0dBm -> good
  -82.0dBm -> fair
  -95.0dBm -> poor
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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