什么软件可以查历史天气(什么软件可以查历史天气记录)学到了吗
周五了,是时候展示一点Python技术了。
正文前的福利1.领电子书:《“笨办法”学Python:第3版》《Python学习手册:第3版》《Python基础教程(第3版)》后台留言回复“Python电子书”领取2.群预告:后期会建群带大家一起免费
交流学习,敬请期待哟~此公众号的部分收益(其他的用来抽奖哈哈哈)会在群里给大家带来不定期的红包雨== · 正 · 文 · 来 · 啦 · ==练习是最好的学习练习是最好的学习练习是最好的学习这能体现练习的重要性了吧
如果大家还不知道怎么开始的话,可以先移步昌昌的python:基础教程、以及可以先看看阿姨给大家准备的:python入门电子书今天阿姨就教大家用python完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序。
知识点如何进行txt文件的读取数据类型的转换列表字典在命令行界面下和程序进行交互条件判断while循环所需工具python3Notepad++、Sublime等任一编辑器cmd、Terminal、pycharm
等能执行命运界面天气数据文本文件(阿姨已备好一个静态pm2.5的数据文件pm25.txt,内包含中国所有县级市以上的城市天气数据,可点击原文下载)废话不多说,阿姨带着大家开始梭哈~
1.读取文件本次主要涉及的是文本文件的读取,Python的文本文件的内容读取,有三种方法:read(),读取整个文件,通常用于将整个文件内容放到一个字符串变量中;readline(),逐行读取,当不需要读取整个文件时可以用;
readlines(),一次性读取文本内容,并自动将文件内容分析成一个行的列表阿姨这次采用的是readlines()来读取文件:pm25 = open(pm2.5.txt,rb).readlines()。
print(pm25_data)输出结果为:[北京,晴\n, 海淀,晴\n, 朝阳,晴\n, 顺义,晴\n, 怀柔,晴\n, ......]大家可以自己试试其他方式读取~2.把列表转化成字典此时读取的的内容把城市和其对应的天气作为字符串存在
pm25列表中(,列表中的字符串不能直接拆开查询,这里需要对列表处理让其转化为字典首先,定义一个字典pm25_data={}用for循环遍历pm25列表每个字符串用strip()方法去掉列表中每个字符串的换行符\n。
再用split()方法用,切分字符串,此时会返回一个列表把每次循环都写进pm25_data字典中代码如下:pm25_data = {}for i in pm25: i = i.decode(utf-8
).strip(\n) 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("\n输入城市名>")if user_input in pm25_data: print("\n%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("\n%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("\n下次见咯~\n") exit() break当输入quit或者exit的时候,就可以退出这个程序也可以定义为中文“退出”来退出程序,大家可以改动下试试。
7.完成最后,再添加上while循环把刚才提到的几个逻辑串联起来,这个简单的程序就完成了:# -*- coding: utf-8 -*-from sys import exit pm25 = open(
pm25.txt,rb).readlines() pm25_data = {}for i in pm25: i = i.decode(utf-8).strip(\n) i = i.split(
,) key = i[0] value = i[1] pm25_data[key] = value history_data = []whileTrue: user_input = input(
"\n输入城市名>")if user_input in pm25_data: print("\n%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("\n下次见咯~\n") exit() break
else: print("\n我还不知道这个城市哦,换换别的城市吧\n")其实不用while循环,直接用if条件判断也不影响结果,大家可以把while去掉试试。cmd执行效果如下:
pycharm执行结果:
源代码(准备了纯代码板块和注释板块)和pm2.5数据文件已经给大家准备好了,直接查看原文即可下载下载密码:zfeb这只是一个最小可行性程序,后期会继续带着大家完善,直到能公网可查询实时PM2.5~关于此公众号。
Pycharm等软件的免费激活码(努力更新中..)python,java等编程技术文章和面试技巧此公众号获得的收益将全部通过抽奖的形式送给大家以后如果要创业,会在此公众号中挑选小伙伴一起哦~你们也可以将你们感兴趣的技术或资源在后台留言,我们尽量满足大家~
希望大家分享出去,让更多想学习python的朋友看到~问题反馈扫码关注,有任何问题,可以在后台留言
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186