← 返回题库
初级

用户状态封禁与恢复

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    users_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_02/users.csv").read()
    import pandas as pd
    from io import StringIO
    users = pd.read_csv(StringIO(users_csv))
    users = users.copy()
    def ban_user(uid):
        idx = users[users['id']==uid].index
        if idx.empty: return False, 'user not found'
        if users.loc[idx[0],'status'] == 'banned': return False, 'already banned'
        users.loc[idx[0],'status'] = 'banned'
        return True, 'banned'
    def unban_user(uid):
        idx = users[users['id']==uid].index
        if idx.empty: return False, 'user not found'
        if users.loc[idx[0],'status'] != 'banned': return False, 'not banned'
        users.loc[idx[0],'status'] = 'active'
        return True, 'unbanned'
    print(f"初始 banned: {users[users['status']=='banned']['username'].tolist()}")
    ok, msg = ban_user(3)
    print(f"ban user=3: ok={ok}, msg={msg}")
    ok2, msg2 = ban_user(5)
    print(f"ban user=5 (already banned): ok={ok2}, msg={msg2}")
    ok3, msg3 = unban_user(5)
    print(f"unban user=5: ok={ok3}, msg={msg3}")
    print(f"最终 banned: {users[users['status']=='banned']['username'].tolist()}")

示例

输入
solve()
期望输出
初始 banned: ['eve']
ban user=3: ok=True, msg=banned
ban user=5 (already banned): ok=False, msg=already banned
unban user=5: ok=True, msg=unbanned
最终 banned: ['carol']
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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