python exit()什么意思_Python基础学习教程:如何用Python来写pm2.5空气质量查询程序...
今天就教大家用之前有跟大家分享过的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列表中(,列表中的字符串不能直接拆开查询,这里需要对列表处理让其转化为字典。
- 首先,定义一个字典pm25_data={}
- 用for循环遍历pm25列表每个字符串
- 用strip()方法去掉列表中每个字符串的换行符
- 再用split()方法用','切分字符串,此时会返回一个列表
- 把每次循环都写进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空气质量查询程序...相关推荐
- Python基础学习教程:如何用Python来写pm2.5空气质量查询程序
今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序. 知识点 如何进行txt ...
- 如何用Python来写pm2.5空气质量查询程序
今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序. 知识点 如何进行txt ...
- python编程免费小说_Python编程学习教程:用python给自己DIY一款小说阅读器
前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...
- Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python
Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...
- java学习_Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心
Python基础学习教程:从0学爬虫?让爬虫满足你的好奇心 有必要学爬虫吗? 我想,这已经是一个不需要讨论的问题了. 爬虫,"有用"也"有趣"! 这个数据为王的 ...
- python语言基本认识_Python基础语法合集——了解python
1. 了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令行中通过Python ...
- 怎么用python画个电脑_python语言还是java如何用python画爱心
用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...
- 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...
- python 多表查询_Python基础学习教程—MySQL常见的多表联查
一. MySQL的多表联查 ================================== 表之间的关系有:1对1 1对多 多对多 1. 嵌套查询:一个查询的结果是另外sql查询的条件: 如:查 ...
最新文章
- SpringMVC之@requestBody的作用
- Excel VBA 处理图形图表详解
- 项目分享 | 好牛X的开源项目,看完忍不住分享(高手作品分享)
- poj2031(prim)
- Navicat Premium 12快捷键
- Python input()和raw_input()的区别
- fiddler如何伪造referrer_Fiddler抓包神器带你遨游网络,叱咤风云,为所欲为
- 车联网就是车-路-云-图-网
- H264视频编码原理
- 制作7Z格式可安装程序包
- 2015-2023年全球医疗器械公司100强(附细分领域排行)
- 浅谈深度学习:了解RNN和构建并预测
- Win11双屏怎么设置不同壁纸
- androidP Surface到SurfaceFlinger -->surface -> BufferQueue(一)
- 前端面试相关题(简易)
- 中国银联-无跳转支付token(银联侧开通)
- 高职计算机应用专业课程,浅谈高职计算机应用专业课程设置
- python基础 Day1
- 文件批量改名:如何将在不同文件夹里的文件统一命名并设置编号?
- rapidcsv 写csv文件实例
热门文章
- css使形状变成圆形,CSS 3形状:“反向圆”或“剪切圆”
- 拯救者14(i7-4720HQ)解决触控板设置项无法打开的问题过程记录
- schwarz( 施瓦兹)不等式证明
- PAT——1088 三人行
- 六盘水计算机高中会考,@六盘水考生 2021年5月普通高中信息技术学业水平考试4月12日开始报名...
- 锐捷telnet登录配置
- 墨水屏桌牌--会议室新应用
- 小猪的Python学习之旅 —— 10.三分钟上手Requests库
- 灭火机器人路径规划matlab_机器人路径规划MATLAB源码
- 电脑自动使用代理服务器导致无法上网