Python基础学习教程:如何⽤Python来写pm2.5空⽓质量查询程序
今天就教⼤家⽤之前有跟⼤家分享过的python基础学习教程完成⾸个MVP,如何⽤CLI(command-line interface,命令⾏界⾯)来执⾏第⼀个空⽓质量查询程序。
知识点
1. 如何进⾏txt⽂件的读取
2. 数据类型的转换
3. 列表
4. 字典
5. 在命令⾏界⾯下和程序进⾏交互
6. 条件判断
7. while循环
所需⼯具
python3
Notepad++、Sublime等任⼀编辑器
cmd、Terminal、pycharm等能执⾏命运界⾯
天⽓数据⽂本⽂件
话不多说,带着⼤家开始梭哈~
1.读取⽂件
本次主要涉及的是⽂本⽂件的读取,
Python的⽂本⽂件的内容读取,有三种⽅法:
1. read(),读取整个⽂件,通常⽤于将整个⽂件内容放到⼀个字符串变量中;
2. readline(),逐⾏读取,当不需要读取整个⽂件时可以⽤;
3. readlines(),⼀次性读取⽂本内容,并⾃动将⽂件内容分析成⼀个⾏的列表。
这次采⽤readlines()来读取⽂件:
pm25 = open('','rb').readlines()
print(pm25_data)
气象python零基础入门教程输出结果为:
['北京,晴 ', '海淀,晴 ', '朝阳,晴 ', '顺义,晴 ', '怀柔,晴 ', ......]
⼤家可以⾃⼰试试其他⽅式读取~
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("""
这⾥是为您准备好的帮助说明:
输⼊城市名可查询该城市的天⽓
springer电子书免费阅读输⼊help或帮助可获取帮助说明
输⼊hitory,可查看历史查询记录
输⼊quit或者exit和我说拜拜~
""")
⽂字可以⾃定义,也可以⽤or来添加多个指令
⽂字较多时,为了显⽰好看,也可以⽂字的前后⽤print(’-’*30)加⼊横线来什么的来美化⼀下什么的
if user_input == "help" or user_input == "帮助":
print("-"*30)
print("""
这⾥是为您准备好的帮助说明:
default啥意思输⼊城市名可查询该城市的天⽓
输⼊help或帮助可获取帮助说明
输⼊hitory,可查看历史查询记录
输⼊quit或者exit和我说拜拜~
""")
print("-"*30)
6.退出
从sys库⾥导⼊⼀个exit函数⽤来退出程序,sys是Python⾃带的模块,直接调⽤就可以⽤:
from sys import exit
if user_input == "quit" or user_input == "exit":
print("
下次见咯~
")
exit()
break
当输⼊quit或者exit的时候,就可以退出这个程序。
也可以定义为中⽂“退出”来退出程序,⼤家可以改动下试试。
7.完成
最后,再添加上while循环把刚才提到的⼏个逻辑串联起来,这个简单的程序就完成了:
# -*- coding: utf-8 -*-
from sys import exit
pm25 = open('','rb').readlines()
pm25_data = {}for i in pm25:
i = i.decode('utf-8').strip('
')
condition variablei = i.split(',')
key = i[0]
value = i[1]
pm25_data[key] = value
history_data = []
while True:
user_input = input("
输⼊城市名>")
jbpm工作流都有哪些技术
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基础学习教程也会继续为⼤家分享!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论