(一)Python查询12306余票:实现始发站、终点站和出发日期的合法性检验
项目介绍首页
1、创建字典info存放查询信息(始发站、终点站、出发日期):
info = {'from_station': '','to_station': '','from_date': ''
}
2、实现检查查询信息的函数:
设计思路:
- 输入的站点是不是在全国现有车站中;
- 输入的始发站和终点站必须不同;
- 输入日期必须在15天内。
在此方法中出现的station*在stationsInfo.py中,可以思考一下为什么使用这些变量,一些变量在后续会使用,现在只需要stationLists。
#检查输入信息from_station, to_station, d
def inputArgs(from_station, to_station, d):now_time = datetime.datetime.now() # 当前日期# 校验flag1 = Falseflag2 = Falseflag3 = Falsewhile flag1 == False or flag2 == False or flag3 == False:#输入的站点是不是在全国现有的车站列表中,如果有,使用count后返回>0的值from_index = stationLists.count(from_station)to_index = stationLists.count(to_station)# 始发站在车站列表中,并且始发站和终点站不同if from_index > 0 and to_station != from_station:flag1 = True# 终点站在车站列表中,并且始发站和终点站不同if to_index > 0 and to_station != from_station:flag2 = Truerdate = re.match(r'^(\d{4})-(\d{2})-(\d{2})$', d)if rdate:from_date = datetime.datetime.strptime(d, '%Y-%m-%d')sub_day = (from_date - now_time).daysif -1 <= sub_day < 15:flag3 = Trueif not flag1:print("始发站不合法!")from_station = input("请输入出发站(年-月-日):\n")if not flag2:print("终点站不合法!")to_station = input("请输入目的地:\n")if not flag3:print("出发日期不合法!")d = input("请输入出发日期(格式:年-月-日):\n")from_date = datetime.datetime.strptime(d, '%Y-%m-%d')sub_day = (from_date - now_time).daysinfo['from_station'] = from_stationinfo['to_station'] = to_stationinfo['from_date'] = dreturn info
3、测试代码:
import datetime
import re
from stationsInfo import stationLists
info = {'from_station': '','to_station': '','from_date': ''
}#检查输入信息from_station, to_station, d
def inputArgs(from_station, to_station, d):# 输入车站信息# from_station = input("请输入出发站:\n")# to_station = input("请输入目的地:\n")# d = input("请输入出发日期(格式:年-月-日):\n")now_time = datetime.datetime.now() # 当前日期# 校验flag1 = Falseflag2 = Falseflag3 = Falsewhile flag1 == False or flag2 == False or flag3 == False:from_index = stationLists.count(from_station)to_index = stationLists.count(to_station)# 始发站在车站列表中,并且始发站和终点站不同if from_index > 0 and to_station != from_station:flag1 = True# 终点站在车站列表中,并且始发站和终点站不同if to_index > 0 and to_station != from_station:flag2 = Truerdate = re.match(r'^(\d{4})-(\d{2})-(\d{2})$', d)if rdate:from_date = datetime.datetime.strptime(d, '%Y-%m-%d')sub_day = (from_date - now_time).daysif -1 <= sub_day < 15:flag3 = Trueif not flag1:print("始发站不合法!")from_station = input("请输入出发站:\n")if not flag2:print("终点站不合法!")to_station = input("请输入目的地:\n")if not flag3:print("出发日期不合法!")d = input("请输入出发日期(格式:年-月-日):\n")from_date = datetime.datetime.strptime(d, '%Y-%m-%d')sub_day = (from_date - now_time).daysinfo['from_station'] = from_stationinfo['to_station'] = to_stationinfo['from_date'] = dreturn infoif __name__ == "__main__":#main方法isContionue = 'Y'while isContionue == 'Y' or isContionue == 'y':from_stations = input('请输入始发站:\n')to_statsions = input('请输入终点站:\n')from_date = input('请输入出发日期:\n')info = inputArgs(from_stations, to_statsions, from_date)print(info)isContionue = input('是否继续?Y/N\n')input('按任意键退出...')
成功检测出错误的输入参数。
注意:输入的始发站和终点站要符合形式相同的原则,即都是拼音或都是中文或都是简称。
下一篇–>联网获取余票信息并解析
(一)Python查询12306余票:实现始发站、终点站和出发日期的合法性检验相关推荐
- (二)、Python查询12306余票:联网查询余票信息并解析
前一篇–>实现始发站.终点站和出发日期的合法性检验 以下如果有的变量不明白说明在前面的文章已经介绍了,切记! 首先我们来看看每查询一条信息12306网站返回的信息: 请求链接: https:// ...
- 项目:用Python查询12306余票
项目最终效果: 成功查询出2018-01-10西安至北京的所有列车. 该项目环境安装: - Python3.6.4环境 ; - pip install requests; - pip install ...
- (四)Python查询12306余票:docopt实现参数的输入-----查询任意时间任意车站余票
前一篇–>漂亮的输出-–prettytable和colorama的使用 在前面的文章中我们能实现很漂亮的输出了,可是只是固定时间固定车站之间的车票信息,在本次中我们使用docopt来 ...
- (六)Python查询12306余票:升级版-----图形化界面代码
上一篇–>添加票价信息 实现效果: 主要代码观看 12306.py: from tkinter import * import re import tkinter.messagebox as m ...
- python查询12306余票_Python脚本实现12306火车票查询系统
最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来.(注意使用的是python3) 首先我将最终结果给展示出来: 在cmd命令行执行:py ...
- (五)Python查询12306余票:添加票价信息
前一篇–>docopt实现参数的输入-–查询任意时间任意车站余票 票价的查询根据前面result的解析是无法获取的,票价需要另外发送请求获取. 请求链接: https://kyfw.12306. ...
- (三)Python查询12306余票:漂亮的输出-----prettytable和colorama的使用
前一篇–>联网查询余票信息并解析 在前面的代码中我们已经实现了对result结果的解析,并且能把车票信息打印出来了.可是输出的格式很不好控制,这时我们需要使用prettytable来实现将车票信 ...
- Python之12306余票查询
简单的Python学习,用Python完成一个12306余票查询- Python之12306余票查询 参考资料来自Python 实现火车票查询工具 需要用到的第三方库 requests,使用 Pyth ...
- python实现12306余票
今天就和大家一起来讨论一下python实现12306余票查询(pycharm+python3.7),一起来感受一下python爬虫的简单实践 我们说先在浏览器中打开开发者工具(F12),尝试一次余票的 ...
最新文章
- Gastroenterology:住院期间COVID-19患者肠道菌群的变化
- java命令执行类,这里设置了classpath,系统变量里的classpath将失效
- 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
- 实现正则表达式的*和?匹配
- 蓝图设计对SAP项目实施的重要性
- Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国
- Linux系统:Centos7下搭建ClickHouse列式存储数据库
- RiPro主题-子主题huzao-child V4.0简洁大气集成后台美化包
- Fedora进入超级用户的方法
- RESTful风格编程
- 程序包androidx.support.annotation不存在/import android.support.annotation.NonNull;报错
- 第9章 逻辑回归 学习笔记 中
- export和import 输出/接收模块变量的接口
- IDEA 运行 Tomcat 中文乱码的各种问题
- 微机 —— 8086微处理器的内部结构
- 计算机app无法删除,文件夹删不掉怎么办?
- 腾讯2020校园招聘笔试
- alias rewrite 后出现404,应设置RewriteBase参数
- android 实时同步短信,备份Android短信的4种方法你最好知道
- 弘辽科技:新手开淘宝店的步骤有哪些?如何起步?
热门文章
- vue3+acro.design 遇到的问题点
- html网页中加五角星,使用css3在网页中实现五角星样式(原理解析)
- 铁通运营商服务器,现在几乎所有宽带运营商都在尝试封BT 只是铁通比他们快一步而已...
- python随机种子的作用_python – 如何使用TensorFlow获得稳定的结果,设置随机种子...
- Photoshop特效实例:诱人的汉堡包字(转)
- 隐藏在波涛汹涌下的真实,肖央
- 《炬丰科技-半导体工艺》半导体晶圆键合
- Springboot微服务调用超时处理
- 解决方案聚焦:如何进行5G/毫米波产品性能测试
- 带你读论文系列之计算机视觉--SENet