为什么所有的if语句都没有在这段代码中执行?



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

我创建了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循环中的print语句只是用来检查代码执行到哪里,它只执行到第一个if块。为什么?

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

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

journeyStageTwo[count][0] 

不是

journeyStageThree[count][0]

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

最新更新