【发布时间】: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