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

Python中基于整数输入的if语句实现及类型错误排查

光纤成本计算程序错误修复与完整实现

错误原因

input()函数返回的是字符串类型,直接和整数100做比较会触发TypeError——字符串和整数不能用>=这类运算符直接对比。另外原代码还存在缩进错误、缺少500英尺的折扣规则,以及未完成完整成本计算流程的问题。

修复并完善后的完整代码

# 欢迎信息
print("Welcome to Fiber Optic Solutions")
company_name = input("Please state the name of your company: ")
print(f"Thank you {company_name},")
print("Our pricing for fiber optic cable is as follows:")
print("- Standard rate: $0.87 per foot")
print("- Discount for orders over 100ft: $0.80 per foot")
print("- Discount for orders over 250ft: $0.70 per foot")
print("- Discount for orders over 500ft: $0.50 per foot")

# 获取并转换输入的英尺数,同时做有效性验证
while True:
    try:
        feet = float(input("\nPlease state how many feet of cable you require: "))
        if feet < 0:
            print("Please enter a positive number.")
            continue
        break
    except ValueError:
        print("Invalid input. Please enter a numeric value.")

# 按批量规则计算单价与总成本
if feet > 500:
    cost_per_foot = 0.50
elif feet > 250:
    cost_per_foot = 0.70
elif feet > 100:
    cost_per_foot = 0.80
else:
    cost_per_foot = 0.87

total_cost = feet * cost_per_foot

# 结果展示
print(f"\n--- Order Summary for {company_name} ---")
print(f"Total feet of cable: {feet:.2f}")
print(f"Price per foot: ${cost_per_foot:.2f}")
print(f"Total cost: ${total_cost:.2f}")

核心改进说明

  • 将输入的英尺数转换为float类型,彻底解决类型不匹配的错误;同时加入循环验证,确保用户输入有效正数。
  • 补充了500英尺的折扣规则,用elif实现多条件判断,逻辑层级更清晰。
  • 修复原代码中if语句的缩进错误(Python要求代码块必须缩进)。
  • 增加完整的订单汇总展示,输出格式更规范易读。

内容的提问来源于stack exchange,提问作者Kyle Hughes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:35:05