在培训班上老师教一个很有意思的公交换乘

本文介绍了一个简单的公交换乘查询系统实现方案。通过输入起始站和终点站,系统能在预设的公交线路数据库中查找合适的换乘路径。文章详细展示了程序的逻辑流程和核心代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序要求如下:

这是一个公交换乘题目, 目的是当用户输入起始站和终点站程序能够在公交车站库中搜索出一条换乘的线路。

例如公交车站的数据库如下

375:西直门,文慧桥,蓟门桥,学院路,知春路
562:蓟门桥,学院路,中关村
387:学院路,北京西站


例如当用户输入:

起点站:西直门

终点站:中关村

程序能 找到: 375---换乘 蓟门桥,学院路(562)----中关村


程序大概的思路如下:

1.将含有起始站的公交路线放进一个列表当中。

2.将含有终点站的公交路线放进一个列表当中。

3.找出起始站和终点站的两个列表中相同的站点就是我们需要换乘的车站。

4.输出起始站 中转站 终点站 (路线图就出来了!!)


代码:


#/usr/bin/env python

#coding=utf-8

a = raw_input('请输入起始站:')
b = raw_input('请输入终点站:')

file = open('luxian.txt','r+')
data = file.readlines() #读取文件当中储存的公交路线信息
file.close()

star = []
end  = []

for n in data:
    if n.find(a) > 0:
        star.append(n) #循环添加起始站列表
        #print star

    if n.find(b) > 0:
        end.append(n)#循环添加终点站列表
        #print end

for l1 in star:
    #print l1        
    l2 = l1.split(':')[1].split(',')#将起始站的每一个站用‘,’分隔成每一站与下面的终点站循环比较
    #print len(l2)
#l2 [375,"xizhimen,zhongguancun,zhichu"]
    for l4 in end:
        l5 = l4.split(':')[1].split(',')#同上
        #print len(l5)
        s = set(l2) & set(l5)
        #print s
        for s1 in s:
            print a + '到',s1,'到' + b

几十行代码   程序是一个公交车换乘系统 程序很简单  但是会很有用的   有什么问题欢迎打两个字交流一下  我在课堂上对两次for循环难理解   如果输出乱码的话有可能是编辑器的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值