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

公交模拟器乘客年龄范围搜索功能开发技术求助

公交模拟器年龄范围搜索功能修改方案

修改思路

  • 兼容两种输入格式:单一年龄(如30)和年龄区间(如55-67)
  • 解析用户输入,区分搜索类型后执行对应匹配逻辑
  • 调整结果输出,适配不同搜索场景的提示

修改后的完整代码

class Buss:
    namn_passagerare = []  # 存储乘客姓名
    passagerare = []       # 存储乘客年龄
    antal_passagerare = 0  # 乘客数量
    max_passagerare = 3    # 公交车最大载客量

def clear():
    # 可补充清屏逻辑,例如导入os后调用 os.system('cls' if os.name == 'nt' else 'clear')
    pass

def find_age():
    try:
        if Buss.antal_passagerare > 0:
            clear()
            print(Buss.namn_passagerare)  # 打印乘客姓名列表
            print(Buss.passagerare)       # 打印乘客年龄列表
            leta_input = input('搜索年龄(支持单一年龄或格式如55-67的区间): ')

            # 解析输入内容
            if '-' in leta_input:
                # 处理年龄区间
                start_str, end_str = leta_input.split('-', 1)
                start_age = int(start_str.strip())
                end_age = int(end_str.strip())
                # 确保起始年龄不大于结束年龄
                if start_age > end_age:
                    start_age, end_age = end_age, start_age
                # 查找匹配区间的乘客索引
                hitta = [i for i, age in enumerate(Buss.passagerare) if start_age <= age <= end_age]
                if hitta:
                    print(f'年龄在{start_age}-{end_age}之间的乘客位于位置: {", ".join(map(str, hitta))}')
                else:
                    print(f'未找到年龄在{start_age}-{end_age}之间的乘客。')
            else:
                # 处理单一年龄搜索
                leta = int(leta_input.strip())
                hitta = [i for i, age in enumerate(Buss.passagerare) if age == leta]
                if hitta:
                    print(f'年龄为{leta}的乘客位于位置: {", ".join(map(str, hitta))}')
                else:
                    print(f'未找到年龄为{leta}的乘客。')
            input('按Enter继续')
        else:
            clear()
    except ValueError:
        print('输入格式错误,请输入数字或num-num格式的区间。')
        input('按Enter继续')

关键修改说明

  1. 输入解析逻辑:

    • 将输入转为字符串处理,通过-判断是否为区间搜索
    • 拆分区间字符串后转换为整数,同时处理起始年龄大于结束年龄的异常情况
    • 增加异常捕获,处理非数字输入的错误场景
  2. 匹配条件调整:

    • 区间搜索时使用start_age <= age <= end_age作为判断条件
    • 保留原单一年龄的精确匹配逻辑
  3. 输出优化:

    • 根据搜索类型(单一/区间)生成对应的提示文本
    • 增加输入格式错误的提示信息

内容的提问来源于stack exchange,提问作者Dominik Lundén

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:42:23