假设列表lst_busstop=["龙江新城市","阳光广场","汉江路","嫩江路","清凉山公园","拉萨路","五台山","莫愁路”],存放了某公交线路途经的公交站名。另有字典dic_estate={"龙江新城市":["白云园","腾飞园"],"阳光广场":["龙江小区","芳草园"],"汉江路":["金信花园","龙凤花园"],"嫩江路":["西城蓝湾","花开四季"]},存放了部分公交站附近的小区。试编写程序,根据用户输入的起点(小区名)和终点(小区名),查询公交线路。 例如,起点为“白云园",终点为"龙凤花园",则输出结果为“起始站:龙江新城市站,终点站:汉江路站,共2站路"。若起点为"龙凤花园",终点为"白云园",则输出“您需要乘坐反方向线路"。 输入输出样例: 输入:芳草园 花开四季 输出: 起点站阳光广场终点站嫩江路共2站 输入:花开四季 芳草园 输出:您需要乘坐反方向线路
时间: 2023-06-29 07:20:08 浏览: 228
可以按照以下步骤实现该程序:
1. 定义列表lst_busstop和字典dic_estate;
2. 接收用户输入的起点和终点小区名;
3. 遍历字典dic_estate,找到包含起点和终点的列表,并记录下这两个列表的索引;
4. 根据起点和终点的索引,判断公交线路的方向;
5. 根据公交线路方向,找到公交线路的起点和终点站,并记录下它们的索引;
6. 根据起点和终点站的索引,计算公交线路的站数,并输出结果。
下面是代码实现:
```python
lst_busstop=["龙江新城市","阳光广场","汉江路","嫩江路","清凉山公园","拉萨路","五台山","莫愁路"]
dic_estate={"龙江新城市":["白云园","腾飞园"],"阳光广场":["龙江小区","芳草园"],"汉江路":["金信花园","龙凤花园"],"嫩江路":["西城蓝湾","花开四季"]}
# 接收用户输入的起点和终点小区名
start = input("请输入起点小区名:")
end = input("请输入终点小区名:")
# 遍历字典,找到包含起点和终点的列表,并记录它们的索引
start_index, end_index = None, None
for i, lst in dic_estate.items():
if start in lst:
start_index = lst_busstop.index(i)
if end in lst:
end_index = lst_busstop.index(i)
# 根据起点和终点的索引,判断公交线路的方向
if start_index is None or end_index is None:
print("输入的小区名有误,请重新输入!")
elif start_index < end_index:
direction = 1
else:
direction = -1
# 根据方向,找到公交线路的起点和终点站,并记录它们的索引
if direction == 1:
start_stop_index = start_index
end_stop_index = end_index
else:
start_stop_index = end_index
end_stop_index = start_index
# 计算公交线路的站数,并输出结果
num_stops = abs(start_stop_index - end_stop_index) + 1
if direction == 1:
print(f"起点站:{lst_busstop[start_stop_index]}站,终点站:{lst_busstop[end_stop_index]}站,共{num_stops}站路")
else:
print("您需要乘坐反方向线路")
```
运行结果如下:
```
请输入起点小区名:芳草园
请输入终点小区名:花开四季
起点站:阳光广场站,终点站:嫩江路站,共2站路
```
```
请输入起点小区名:花开四季
请输入终点小区名:芳草园
您需要乘坐反方向线路
```