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

为什么Python代码执行加法运算后结果始终输出0?

问题原因

  • 字符串比较运算符使用错误:Python 中 is 用于判断两个变量是否指向同一块内存地址,要判断字符串内容是否相等需要使用 == 运算符。你输入得到的 CCode 和判断条件里的 str("C1") 虽然内容完全一致,但属于不同的字符串对象,因此所有if判断结果都是False,TotalPrice 始终没有被修改,输出就是初始的0.0。
  • 代码缩进不规范:你提供的代码中while循环、后续的if判断语句、最终打印语句的缩进层级,和前面的变量定义层级不匹配,实际运行会直接抛出缩进错误。

修复后的代码

HomeStartCodes = ["C1", "C2", "C3", "C4", "C5"]
HomeStartPrice  = [1.5, 3.0, 4.5, 6.0, 8.0]
TotalPrice = 0.0
while True:
    CCode = str(input("Please enter the first code of your journey "))
    if (CCode not in HomeStartCodes):
        print("Invalid, please enter C1. C2, C3, C4  or C5")
        continue
    else:
        break
# 把所有is替换成==
if CCode == "C1":
    TotalPrice = TotalPrice + HomeStartPrice[0]
if CCode == "C2":
    TotalPrice = TotalPrice + HomeStartPrice[1]
if CCode == "C3":
    TotalPrice = TotalPrice + HomeStartPrice[2]
if CCode == "C4":
    TotalPrice = TotalPrice + HomeStartPrice[3]
if CCode == "C5":
    TotalPrice = TotalPrice + HomeStartPrice[4]
print (TotalPrice)  

更简洁的优化写法

不需要写多分支if判断,直接通过下标匹配取值即可:

HomeStartCodes = ["C1", "C2", "C3", "C4", "C5"]
HomeStartPrice  = [1.5, 3.0, 4.5, 6.0, 8.0]
TotalPrice = 0.0
while True:
    CCode = input("Please enter the first code of your journey ")
    if CCode not in HomeStartCodes:
        print("Invalid, please enter C1, C2, C3, C4 or C5")
        continue
    break
# 直接取下标找对应价格
index = HomeStartCodes.index(CCode)
TotalPrice += HomeStartPrice[index]
print(TotalPrice)

内容的提问来源于stack exchange,提问作者Ali Hosam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:36:05