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

输入0后无输出,Python州际公路编号程序调试求助

解决州际公路编号程序中0和200无输出的问题

你的代码存在两个核心问题导致0和200无法触发无效提示:

  • 输入0时:既不满足0 < highway_num < 100(0不大于0),也不满足99 < highway_num < 1000,两个if块都跳过,无输出。
  • 输入200时:虽然进入了辅助公路的判断分支,但原逻辑把无效判断嵌套在辅助公路的条件里,且没有覆盖所有可能的无效场景(比如0完全不在任何判断范围内)。

下面是修正后的代码,调整了逻辑顺序并补全了规则:

highway_num = int(input())

# 优先处理所有无效情况
if highway_num == 0 or highway_num == 200 or highway_num < 1 or highway_num > 999:
    print(f'{highway_num} is not a valid interstate highway number.')
# 处理主公路(1-99)
elif 0 < highway_num < 100:
    print(f'I-{highway_num} is primary,', end='')
    print(' going east/west.' if highway_num % 2 == 0 else ' going north/south.')
# 处理辅助公路(100-999,排除200)
elif 99 < highway_num < 1000:
    primary_num = highway_num % 100
    print(f'I-{highway_num} is auxiliary, serving I-{primary_num},', end='')
    print(' going east/west.' if primary_num % 2 == 0 else ' going north/south.')

关键调整点:

  • 逻辑顺序:把无效判断放在最前面,确保0、200这类数值直接触发提示,不会被后续条件遗漏。
  • 用elif替代独立if:避免多个条件同时触发,逻辑更严谨,一旦某个条件满足,后面的分支不再执行。
  • 补全辅助公路规则:根据州际公路实际规则,辅助公路的方向由其对应的主公路(编号最后两位)决定,这里补充了这部分逻辑。

内容的提问来源于stack exchange,提问作者uwu owo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:15:45