You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用:和;两个分隔符拆分用户输入并校验输入格式合法性

实现方案

你可以先按;拆分出所有科目-数值对,再对每个配对单独按:拆分,同步增加多层合法性校验即可满足需求。

需覆盖的校验规则

  • 按;拆分后必须恰好得到4个非空元素
  • 每个元素必须能且仅能按:拆分为2个非空部分,分别对应科目名称和数值
  • 若要求数值为数字类型,可额外增加类型合法性校验

完整代码

raw_input = input("Enter 4 subjects and amount separated by (;) like Math:90;Science:80:")
res = {}
valid = True

# 第一步:按分号拆分科目对
subject_list = raw_input.split(";")

if len(subject_list) != 4:
    valid = False
else:
    for item in subject_list:
        # 第二步:按冒号拆分单条科目-数值
        parts = item.split(":")
        # 校验拆分结果格式
        if len(parts) != 2 or not parts[0].strip() or not parts[1].strip():
            valid = False
            break
        # 数值为整数的校验,不需要可删除
        try:
            score = int(parts[1].strip())
        except ValueError:
            valid = False
            break
        res[parts[0].strip()] = score

if not valid:
    print("Invalid Input")
else:
    # 合法输入的处理逻辑,此处直接打印结果示例
    print(res)

测试示例

  • 输入Math:90;Science:85;English:88;History:92,输出{'Math': 90, 'Science': 85, 'English': 88, 'History': 92}
  • 输入Math:90;Science:85;English:88、Math;90;Science:85;English:88;History:92等不符合规则的内容,输出Invalid Input

内容的提问来源于stack exchange,提问作者Yuzuki Yuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:45:03