← 返回题库
初级

实现范围验证器

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    validation_rules_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_01/validation_rules.csv").read()
    import pandas as pd
    from io import StringIO
    rules = pd.read_csv(StringIO(validation_rules_csv))
    def range_validate(field, value, rules_df):
        rule = rules_df[(rules_df['field']==field) & (rules_df['rule_type']=='range')]
        if rule.empty: return True, ''
        mn, mx = map(float, rule.iloc[0]['constraint'].split(','))
        ok = mn <= float(value) <= mx
        return ok, rule.iloc[0]['message'] if not ok else ''
    test_cases = [('age',25),('age',-1),('age',150),('price',299.0),('price',-10),('stock',50),('stock',-5)]
    for field, val in test_cases:
        ok, msg = range_validate(field, val, rules)
        print(f"{field}={val}: ok={ok}" + (f", err={msg}" if msg else ''))

示例

输入
solve()
期望输出
age=25: ok=True
age=-1: ok=False, err=年龄必须在1-120之间
age=150: ok=False, err=年龄必须在1-120之间
price=299.0: ok=True
price=-10: ok=False, err=价格必须大于0
stock=50: ok=True
stock=-5: ok=False, err=库存不能为负数
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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