【问题标题】:why are all if statements NOT Executed in this code?为什么这段代码中没有执行所有 if 语句?
【发布时间】:2021-10-08 07:52:18
【问题描述】:

这是我正在为运输系统编写的程序的一部分。场景是一个旅程分为三个阶段:第一阶段将从家中接客并在车站下车。第 2 阶段将把乘客从出发站带到到达站。第三阶段将把乘客从到达站带到他们想去的实际目的地。每个阶段都有一个价格和相应的代码,乘客在预订旅程时必须输入这些代码。最后要计算行程总价。相关代码如下所示。

我创建了 3 个列表来存储这些代码及其价格,并从乘客那里输入代码。我认为使用 for 循环遍历列表中的每个项目,我可以将其与用户的输入进行比较,然后得到相应的价格。但是这段代码并没有做我认为它应该做的事情。我猜我犯了一个非常愚蠢的错误,但我就是想不通。

我想从这段代码中得到正确的价格。但它没有给出正确的价格。例如:如果我选择 'C1','M1','F1' 作为输入,价格总计应为 8.75,但输出为 1.5。

journeyStageOne = [['C1',1.50],['C2',3.00],['C3',4.50],['C4',6.00],['C5',8.00]]
journeyStageTwo = [['M1',5.75],['M2',12.50],['M3',22.25],['M4',34.50],['M5',45.00]]
journeyStageThree = [['F1',1.50],['F2',3.00],['F3',4.50],['F4',6.00],['F5',8.00]]

code1 = input('Enter code for stage 1 of journey: ')
code2 = input('Enter code for stage 2 of journey: ')
code3 = input('Enter code for stage 3 of journey: ')

total = 0
price1 = 0
price2 = 0
price3 = 0

for count in range(5):

    if journeyStageOne[count][0] == code1.upper():
        price1 = journeyStageOne[count][1]
        print('one')

    if journeyStageTwo[count][0] == code2.upper():
        price2 = journeyStageTwo[count][1]
        print('two')

    if journeyStageThree[count][0] == code3.upper():
        price3 = journeyStageThree[count][1]
        print('three')

total = price1+price2+price3
print(total)

*for 循环中的那些打印语句仅用于检查代码执行的位置,并且仅在第一个 if 块之前执行。为什么?

如果我的方法有误,请告诉我应该写什么而不是所有这些。

【问题讨论】:

  • 您有两个带有journeyStageTwo 的块 - 这是故意的还是复制粘贴错误?
  • 我写错了,谢谢你给我看。

标签: python-3.x for-loop if-statement


【解决方案1】:

你写的第三个 if 循环中代码的唯一变化

journeyStageTwo[count][0] 

而不是

journeyStageThree[count][0]

这是你输出错误的原因,希望你能纠正它

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    相关资源
    最近更新 更多