今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序。

知识点

  • 如何进行txt文件的读取
  • 数据类型的转换
  • 列表
  • 字典
  • 在命令行界面下和程序进行交互
  • 条件判断
  • while循环

所需工具

  • python3
  • Notepad++、Sublime等任一编辑器
  • cmd、Terminal、pycharm等能执行命运界面
  • 天气数据文本文件

话不多说,带着大家开始梭哈~

1.读取文件

本次主要涉及的是文本文件的读取,

Python的文本文件的内容读取,有三种方法:

  • read(),读取整个文件,通常用于将整个文件内容放到一个字符串变量中;
  • readline(),逐行读取,当不需要读取整个文件时可以用;
  • readlines(),一次性读取文本内容,并自动将文件内容分析成一个行的列表。

这次采用readlines()来读取文件:

pm25 = open('pm2.5.txt','rb').readlines()print(pm25_data)

输出结果为:

['北京,晴', '海淀,晴', '朝阳,晴', '顺义,晴', '怀柔,晴', ......]

大家可以自己试试其他方式读取~

2.把列表转化成字典

此时读取的的内容把城市和其对应的天气作为字符串存在pm25列表中(,列表中的字符串不能直接拆开查询,这里需要对列表处理让其转化为字典。

  1. 首先,定义一个字典pm25_data={}
  2. 用for循环遍历pm25列表每个字符串
  3. 用strip()方法去掉列表中每个字符串的换行符
  4. 再用split()方法用','切分字符串,此时会返回一个列表
  5. 把每次循环都写进pm25_data字典中

代码如下:

pm25_data = {}for i in pm25: i = i.decode('utf-8').strip('') i = i.split(',') key = i[0] value = i[1] pm25_data[key] = value

这样,城市和其对应的pm2.5的数值作为key和value分别存入到pm25_data中了。

在我们搜索的过程中,只需要找到该城市在字典中的位置,则可以得到其对应的pm2.5值。

3.获取用户输入的值

完成了天气的读取,下面要实现的是用户的交互,采用input()来读取用户想要查询的城市,并用其输入的值作为key去字典里面进行查询:

user_input = input("输入城市名>")if user_input in pm25_data:print("%s的PM2.5为:" % user_input, pm25_data[user_input])

user_input为用户输入的城市名, pm25_data[user_input]是其所对应的pm2.5值。

4.历史记录

可以在最开始的是定义一个history_data = []作为缓存,用于存储历史记录。

用户查询一次记录一次,所以存储历史数据的代码为:

history_data = []if user_input in pm25_data: print("%s的PM2.5为:" % user_input, pm25_data[user_input]) history_data.append(user_input)

temp.append用于在列表中增加一组。

想要读取这个缓存里面的内容,则可以使用循环来进行查看:

if user_input == "history" or user_input == "查询历史":  for i in history_data: print(i, pm25_data[i])

for i in history_data:可以遍历history_data中的每一个数据。

5.帮助

还可以定义下help指令,当输入help或者帮助的时候可以查看帮助文档,用三引号来输入多行文字:

if user_input == "help" or user_input == "帮助": print(""" 这里是为您准备好的帮助说明: 输入城市名可查询该城市的天气 输入help或帮助可获取帮助说明 输入hitory,可查看历史查询记录 输入quit或者exit和我说拜拜~ """)

文字可以自定义,也可以用or来添加多个指令

文字较多时,为了显示好看,也可以文字的前后用print('-'*30)加入横线来什么的来美化一下什么的

if user_input == "help" or user_input == "帮助": print("-"*30) print(""" 这里是为您准备好的帮助说明: 输入城市名可查询该城市的天气 输入help或帮助可获取帮助说明 输入hitory,可查看历史查询记录 输入quit或者exit和我说拜拜~ """) print("-"*30)

6.退出

从sys库里导入一个exit函数用来退出程序,sys是Python自带的模块,直接调用就可以用:

from sys import exitif user_input == "quit" or user_input == "exit": print("下次见咯~") exit()  break

当输入quit或者exit的时候,就可以退出这个程序。

也可以定义为中文“退出”来退出程序,大家可以改动下试试。

7.完成

最后,再添加上while循环把刚才提到的几个逻辑串联起来,这个简单的程序就完成了:

# -*- coding: utf-8 -*-from sys import exitpm25 = open('pm25.txt','rb').readlines()pm25_data = {}for i in pm25: i = i.decode('utf-8').strip('') i = i.split(',') key = i[0] value = i[1] pm25_data[key] = valuehistory_data = []while True: user_input = input("输入城市名>") if user_input in pm25_data: print("%s的PM2.5为:" % user_input, pm25_data[user_input]) history_data.append(user_input)   elif user_input == "help" or user_input == "帮助": print("-" * 30) print(""" 这里是为您准备好的帮助说明: 输入城市名可查询该城市的天气 输入help可获取帮助说明 输入hitory,可查看历史查询记录 输入quit或者exit和我说拜拜~ """) print ("-" * 30)  elif user_input == "history" or user_input == "查询历史": for i in history_data: print(i, pm25_data[i])  elif user_input == "quit" or user_input == "exit": print("下次见咯~") exit() break else: print("我还不知道这个城市哦,换换别的城市吧")

其实不用while循环,直接用if条件判断也不影响结果,大家可以把while去掉试试。

cmd执行效果如下:

pycharm执行结果:

这只是一个最小可行性程序,后期会继续带着大家完善,直到能公网可查询实时PM2.5~

更多的Python基础学习教程也会继续为大家分享!

python exit()什么意思_Python基础学习教程:如何用Python来写pm2.5空气质量查询程序...相关推荐

  1. Python基础学习教程:如何用Python来写pm2.5空气质量查询程序

    今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序. 知识点 如何进行txt ...

  2. 如何用Python来写pm2.5空气质量查询程序

    今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序. 知识点 如何进行txt ...

  3. python编程免费小说_Python编程学习教程:用python给自己DIY一款小说阅读器

    前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...

  4. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  5. java学习_Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心

    Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心 有必要学爬虫吗? 我想,这已经是一个不需要讨论的问题了. 爬虫,"有用"也"有趣"! 这个数据为王的 ...

  6. python语言基本认识_Python基础语法合集——了解python

    1.  了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令行中通过Python ...

  7. 怎么用python画个电脑_python语言还是java如何用python画爱心

    用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...

  8. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  9. python 多表查询_Python基础学习教程—MySQL常见的多表联查

    一. MySQL的多表联查 ================================== 表之间的关系有:1对1 1对多 多对多 1. 嵌套查询:一个查询的结果是另外sql查询的条件: 如:查 ...

最新文章

  1. SpringMVC之@requestBody的作用
  2. Excel VBA 处理图形图表详解
  3. 项目分享 | 好牛X的开源项目,看完忍不住分享(高手作品分享)
  4. poj2031(prim)
  5. Navicat Premium 12快捷键
  6. Python input()和raw_input()的区别
  7. fiddler如何伪造referrer_Fiddler抓包神器带你遨游网络,叱咤风云,为所欲为
  8. 车联网就是车-路-云-图-网
  9. H264视频编码原理
  10. 制作7Z格式可安装程序包
  11. 2015-2023年全球医疗器械公司100强(附细分领域排行)
  12. 浅谈深度学习:了解RNN和构建并预测
  13. Win11双屏怎么设置不同壁纸
  14. androidP Surface到SurfaceFlinger -->surface -> BufferQueue(一)
  15. 前端面试相关题(简易)
  16. 中国银联-无跳转支付token(银联侧开通)
  17. 高职计算机应用专业课程,浅谈高职计算机应用专业课程设置
  18. python基础 Day1
  19. 文件批量改名:如何将在不同文件夹里的文件统一命名并设置编号?
  20. rapidcsv 写csv文件实例

热门文章

  1. css使形状变成圆形,CSS 3形状:“反向圆”或“剪切圆”
  2. 拯救者14(i7-4720HQ)解决触控板设置项无法打开的问题过程记录
  3. schwarz( 施瓦兹)不等式证明
  4. PAT——1088 三人行
  5. 六盘水计算机高中会考,@六盘水考生 2021年5月普通高中信息技术学业水平考试4月12日开始报名...
  6. 锐捷telnet登录配置
  7. 墨水屏桌牌--会议室新应用
  8. 小猪的Python学习之旅 —— 10.三分钟上手Requests库
  9. 灭火机器人路径规划matlab_机器人路径规划MATLAB源码
  10. 电脑自动使用代理服务器导致无法上网