Python入门求助:实现年份区间定价与循环查询功能
嘿,作为Python新手第二周就能写出功能代码已经很棒啦!针对你提出的优化需求,我整理了一套完整的解决方案,咱们一步步来实现:
优化汽车年份定价查询程序的解决方案
核心优化目标拆解
- 支持自定义年份区间的定价逻辑,超出区间返回明确错误提示
- 实现循环查询机制,用户可选择继续查询或退出程序
完整优化代码示例
def get_car_price(year): # 自定义定价区间,你可以根据需求修改这两个值 min_valid_year = 1960 max_valid_year = 1970 # 检查年份是否在有效区间内 if not (min_valid_year <= year <= max_valid_year): return f"错误:输入的年份不在定价范围内,请输入{min_valid_year}到{max_valid_year}之间的年份" # 这里替换成你的实际定价逻辑,示例保留你原本的1961、1962规则并扩展其他区间 if year == 1961: return "价格:$15,000" elif year == 1962: return "价格:$16,500" elif 1963 <= year <= 1965: return "价格:$18,000" elif 1966 <= year <= 1970: return "价格:$20,000" def main(): while True: try: user_input = input("\n请输入汽车生产年份(输入'q'可退出程序):\n") # 处理用户退出请求,不区分大小写 if user_input.lower() == 'q': print("程序已退出,再见!") break # 将输入转换为整数年份 car_year = int(user_input) # 获取价格结果并输出 price_result = get_car_price(car_year) print(price_result) except ValueError: # 处理用户输入非数字的情况 print("错误:请输入有效的年份数字,或输入'q'退出程序") if __name__ == "__main__": main()
代码关键细节说明
- 模块化定价逻辑:把年份判断和价格计算封装在
get_car_price()函数里,后续修改定价规则或区间只需要改动这个函数,维护起来更省心。 - 灵活的区间校验:通过
min_valid_year和max_valid_year定义有效区间,一行代码就能完成合法性检查,超出区间直接返回友好提示。 - 循环交互机制:用
while True实现无限循环,直到用户输入q才退出,完美满足“反复查询或退出”的需求。 - 异常防护:捕获用户输入非数字时的
ValueError,避免程序崩溃,同时给出清晰的引导提示。
扩展建议
- 你可以随时修改
get_car_price()里的区间值和定价规则,比如添加更多年份对应的价格,或者调整区间范围 - 如果后续需要支持多车型定价,只需要给
get_car_price()增加一个车型参数,扩展起来非常灵活
内容的提问来源于stack exchange,提问作者Chinyama
相关产品推荐
相关产品推荐

