项目介绍首页

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余票:实现始发站、终点站和出发日期的合法性检验相关推荐

  1. (二)、Python查询12306余票:联网查询余票信息并解析

    前一篇–>实现始发站.终点站和出发日期的合法性检验 以下如果有的变量不明白说明在前面的文章已经介绍了,切记! 首先我们来看看每查询一条信息12306网站返回的信息: 请求链接: https:// ...

  2. 项目:用Python查询12306余票

    项目最终效果: 成功查询出2018-01-10西安至北京的所有列车. 该项目环境安装: - Python3.6.4环境 ; - pip install requests; - pip install ...

  3. (四)Python查询12306余票:docopt实现参数的输入-----查询任意时间任意车站余票

    前一篇–>漂亮的输出-–prettytable和colorama的使用       在前面的文章中我们能实现很漂亮的输出了,可是只是固定时间固定车站之间的车票信息,在本次中我们使用docopt来 ...

  4. (六)Python查询12306余票:升级版-----图形化界面代码

    上一篇–>添加票价信息 实现效果: 主要代码观看 12306.py: from tkinter import * import re import tkinter.messagebox as m ...

  5. python查询12306余票_Python脚本实现12306火车票查询系统

    最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来.(注意使用的是python3) 首先我将最终结果给展示出来: 在cmd命令行执行:py ...

  6. (五)Python查询12306余票:添加票价信息

    前一篇–>docopt实现参数的输入-–查询任意时间任意车站余票 票价的查询根据前面result的解析是无法获取的,票价需要另外发送请求获取. 请求链接: https://kyfw.12306. ...

  7. (三)Python查询12306余票:漂亮的输出-----prettytable和colorama的使用

    前一篇–>联网查询余票信息并解析 在前面的代码中我们已经实现了对result结果的解析,并且能把车票信息打印出来了.可是输出的格式很不好控制,这时我们需要使用prettytable来实现将车票信 ...

  8. Python之12306余票查询

    简单的Python学习,用Python完成一个12306余票查询- Python之12306余票查询 参考资料来自Python 实现火车票查询工具 需要用到的第三方库 requests,使用 Pyth ...

  9. python实现12306余票

    今天就和大家一起来讨论一下python实现12306余票查询(pycharm+python3.7),一起来感受一下python爬虫的简单实践 我们说先在浏览器中打开开发者工具(F12),尝试一次余票的 ...

最新文章

  1. Gastroenterology:住院期间COVID-19患者肠道菌群的变化
  2. java命令执行类,这里设置了classpath,系统变量里的classpath将失效
  3. 计算机文字识别的过程包括哪些步骤,电脑上的文字识别工具怎么使用?
  4. 实现正则表达式的*和?匹配
  5. 蓝图设计对SAP项目实施的重要性
  6. Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国
  7. Linux系统:Centos7下搭建ClickHouse列式存储数据库
  8. RiPro主题-子主题huzao-child V4.0简洁大气集成后台美化包
  9. Fedora进入超级用户的方法
  10. RESTful风格编程
  11. 程序包androidx.support.annotation不存在/import android.support.annotation.NonNull;报错
  12. 第9章 逻辑回归 学习笔记 中
  13. export和import 输出/接收模块变量的接口
  14. IDEA 运行 Tomcat 中文乱码的各种问题
  15. 微机 —— 8086微处理器的内部结构
  16. 计算机app无法删除,文件夹删不掉怎么办?
  17. 腾讯2020校园招聘笔试
  18. alias rewrite 后出现404,应设置RewriteBase参数
  19. android 实时同步短信,备份Android短信的4种方法你最好知道
  20. 弘辽科技:新手开淘宝店的步骤有哪些?如何起步?

热门文章

  1. vue3+acro.design 遇到的问题点
  2. html网页中加五角星,使用css3在网页中实现五角星样式(原理解析)
  3. 铁通运营商服务器,现在几乎所有宽带运营商都在尝试封BT 只是铁通比他们快一步而已...
  4. python随机种子的作用_python – 如何使用TensorFlow获得稳定的结果,设置随机种子...
  5. Photoshop特效实例:诱人的汉堡包字(转)
  6. 隐藏在波涛汹涌下的真实,肖央
  7. 《炬丰科技-半导体工艺》半导体晶圆键合
  8. Springboot微服务调用超时处理
  9. 解决方案聚焦:如何进行5G/毫米波产品性能测试
  10. 带你读论文系列之计算机视觉--SENet