使用input()python执行While循环

2024-04-29 09:06:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让这个代码工作,但不知怎么它不起作用

我想检查用户输入(它必须与我的火车站列表相匹配)

我应该使用while循环,直到用户使用正确的火车站,然后继续问题2

第一个输入是:出发站? 第二个输入(第二个问题):到达车站?在

这是我目前为止的代码:

stations = ["Schagen", "Heerhugowaard", "Alkmaar", "Castricum", "Zaandam", "Amsterdam Sloterdijk", "Amsterdam Centraal",
        "Amsterdam Amstel", "Utrecht Centraal", "Hertogenbosch", "Eindhoven", "Weert", "Roermond", "Sittard",
        "Maastricht"]
start = input("Wat is je begin station?")
end = input("Wat is je eind station?")

if start in stations:
    print('Je vertrekt vanaf:', start)
else:
    print("wrong station")

Tags: 代码列表inputis检查用户startprintstation
3条回答
questions = {1: "Wat is je begin station?", 2: "Wat is je eind station?"}
ques_number = 1     

while ques_number<=2:
  answer = input(questions[ques_number])
  if answer in stations:
    print('Je vertrekt vanaf:%s'%answer)
    ques_number += 1
  else:
    print("wrong station")

这会一直向用户询问电台。你可以根据需要增加问题的数量。在

试试这个:

stations = ["Schagen", "Heerhugowaard", "Alkmaar", "Castricum", "Zaandam", "Amsterdam Sloterdijk", "Amsterdam Centraal",
        "Amsterdam Amstel", "Utrecht Centraal", "Hertogenbosch", "Eindhoven", "Weert", "Roermond", "Sittard",
        "Maastricht"]
mapped = [x.lower().strip() for x in stations] # lowercased stations
start = input("Wat is je begin station?").lower().strip()

while not start.lower().strip() in mapped:
    print("wrong station")
    start = input("Wat is je begin station?").lower().strip()
start = stations[mapped.index(start)]

end = input("Wat is je eind station?").lower().strip()
print('Je vertrekt vanaf:', start)

while not end in stations:
    print("wrong station")
    end = input("Wat is je eind station?").lower().strip()

end = stations[mapped.index(start)]
# print the end station here.

希望这不是家庭作业,因为您应该尝试用文档(https://wiki.python.org/moin/WhileLoop)来解决这些问题

我会试试这样的。。不过,如果允许通过编号选择电台或模糊匹配字符串,则可以使其更好。在

stations = ["Schagen", "Heerhugowaard", "Alkmaar", "Castricum", "Zaandam", "Amsterdam Sloterdijk", "Amsterdam Centraal","Amsterdam Amstel", "Utrecht Centraal", "Hertogenbosch", "Eindhoven", "Weert",  "Roermond", "Sittard","Maastricht"]

print "Stations"
for i in range(len(stations)):
     print(str(i) + " " + stations[i])

start = input("Wat is je begin station?")
while start not in stations:
        print("wrong station")
        start = input("Wat is je begin station?")

print('Je vertrekt vanaf: {0}'.format(start))

end = input("Wat is je eind station?")
while end not in stations:
       print("wrong station")
      end = input("Wat is je eind station?")

print('Je aankomt op: {0}'.format(end))

相关问题 更多 >