13965| 11
|
[M10教程] 【行空板图形化Python入门教程】第15课:天气助手 |
第15课 天气助手 准备外出旅游的时候,查询天气,选择合适的衣物是非常重要的准备工作,今天我们就利用行空板来做一个“天气助手”,来帮你查询计划出行的城市天气吧。 任务目标 行空板屏幕显示当前城市、天气、日期及温度。 知识点 1. 了解程序中的接口知识 2. 掌握程序中字典的基本使用方法 3. 掌握获取天气信息的方法 材料清单 1. 硬件清单 行空板x1 Type-C&Micro二合一USB线x1 2. 软件使用 Mind+编程软件x1,下载地址:https://www.mindplus.cc 动手实践 天气助手的主要功能是通过网络获取和显示城市的天气和气温。具体如何实现呢?接下来我们就分两个任务来完成吧。 任务一:获得天气数据 在此任务中,我们将学习利用“天气API”开放平台获得并显示天气数据。 任务二:显示指定天气信息 基于已获得天气数据,我们将进一步学习字典知识,完成数据筛选,显示所需天气信息。 任务一:获得天气数据 1. 硬件搭建 使用USB连接线将行空板连接到计算机。 2. 软件准备 打开Mind+,按照下面图示完成软件准备过程。 3. 编写程序 手机中显示的天气数据都是通过网络获取的,行空板也类似。接下来我们就来学习获取天气数据的方法。 天气数据需要通过“接口”获得,本节课我们使用“天气API”获取。 注意:关于“接口”知识,参见“知识园地”。 首先,访问天气API网站(百度搜索或者访问 http://www.tianqiapi.com/),完成注册和登录; 然后,点击“返回天气API官网”→选择“API文档”查询免费天气接口; 免费天气信息在API文档左边栏的“免费基础实况天气”中,另外,在右边的“请求示例”下方就是要使用的接口网址。 你也可以复制访问该网址,查看当前所在城市的天气数据,你能看懂数据中数值的含义吗。 另外,如果你想更换城市的天气数据,只需要在接口网址末尾加上“&city=某城市”,比如,杭州天气的接口网址为:"https://www.yiketianqi.com/free/day?appid=xxxx&appsecret=xxxx&unescape=1&city=杭州" 天气数据已经获得,如何放进程序呢?这需要通过“Requests模块”对天气API发出请求才能获取数据。 点击“扩展”→“官方库”中,找到“Requests”并添加。 接下来,就可以在“Requests”分类下找到对应指令,本节课我们要使用的是 发起一个GET请求“” 指令向天气API发出请求,以及 解析 请求内容为 文本格式 将获取数据转化成刚才网页中看到的样子。 注意:解析 请求内容为 文本格式 指令解析数据时有三种格式可选,文本格式是字符串形式;二进制格式是指二进制类型串(bytes类型),你可以把它理解成由二进制数组成的字符串;JSON格式是打包好的数据格式,可以用关键字找到对应的数据。为了方便待会处理数据,这里选择JSON格式。 为了更好理解代码,实现时可以建立 url、response以及data 三个变量来分别储存接口网址、请求响应、天气数据。 为了更方便的修改城市,使用字符串连接指令 合并天气接口网址 城市,将城市和接口主要网址部分分开。 接下来,你可以直接将 data变量 显示在行空板上,为了更完整的看到天气数据,可以设定显示的字体大小和文字宽度。完整参考代码如下: 4. 程序运行 运行代码前,你需要使用上节课的方法,让行空板连上无线网络; 点击运行,等待数据获取成功后,屏幕居中显示获得的完整天气数据。 任务二:显示指定天气信息 1. 编写程序 在任务一中,我们已经成功获得天气数据,但显示的内容过于复杂,其实只需要“城市”、“日期”、“天气”以及“气温”即可。也就是说,我们需要从 data变量 中筛选出我们所需的信息,如何完成呢? 其实,现在你看到的数据形式是Python中的“字典”,它是通过“:”将前后两个内容绑定的数据类型,可以通过“:”前的“键”获得冒号后的“值”。 注意:关于程序中的“字典”知识,参见“知识园地”。 “字典”相关的操作指令,在“指令区”的“字典”分类下,要获取“值”,需要使用 字典{}键“ ”的值 指令并填好“字典”和“键”的内容,比如要获得上图中的日期,可以使用 字典data变量键”date”的值。 然后,你就可以将获取的日期信息显示在行空板屏幕上了。 同样的,所在城市、天气和温度信息可以用“city”、“wea”和“tem”三个键获得。当然,显示的时候可以加入一些文字提示。完整参考代码如下: 2. 程序运行 检查行空板连接情况,点击运行,等待一会,显示代码填写城市天气、日期等信息。 知识园地 1. 程序中的接口 应用程序接口,又叫接口(简称API)它是用来提供一些功能或数据的程序。你可以把它理解成一个别人定义的功能函数,使用时你不需要访问源码,也不需要知道实现原理,只要给出参数并调用函数,就会得出你想要的数据。就像本节课项目中的“天气API”,网址对应着参数,输入网址并通过访问网站调用对应的功能函数,就可以获取天气数据,不需要知道这些数据是通过什么手段得到的。 接口的出现是为了让写代码的人可以更方便的实现更多的应用,也正因如此,接口的输入参数和编写需要更加规范。其实,你可以在很多场景中使用接口,在程序内使用系统定义的函数和指令,直接下载安装别的公司或开发者写好的库,甚至你可以直接通过网络平台,远程调用更强大的功能,就像本节课通过“天气API”获得天气数据,上节课的“讯飞开放平台”获得语音识别功能。 2. 程序中的字典 字典是Python程序中基础数据类型之一,它常被用来表示数据之间一一对应的关系,比如:姓名和学号、游戏中的技能和伤害点。字典是由“{}”构成,当大括号里什么都没有时,表示空字典;有数据时,数据以“键值对”存在,每个“键值对”形式为“键:值”,多个“键值对”用逗号隔开。 注意:所有符号都是英文符号。 在图形化指令中,在指令区“字典”分类下找到 操作字典的指令 。对于上图中的例子,我们可以使用 初始化字典{ : } 和 number变量 来建立字典,同时使用 字典number键“小明”的值 读取上图number变量中“小明”的学号。 3. 指令学习 本项目主要使用了学习了网络请求、字典相关指令,接下来我们就详细学习一下。 该指令用于对于个网址发出连接请求,使用时需要写明网址内容。 该指令用于解析网络请求获得的响应数据。数据可转化为文本格式、JSON格式以及二进制格式。 该指令用于建立一个字典数据。 该指令用于读取字典中键对应的值。 挑战自我 在本项目中你已经完成了不同城市的天气消息获取,现在请你设计界面布局,完成下面任务: 1、添加切换城市按钮,实现开始显示当前所在城市天气,当切换不同的城市后,按下行空板A键更新对应城市天气; 2、使用素材文件夹中的图片素材,给不同的天气配上不同的图片,当然你也可以显示不同的信息在你的行空板上,界面设计可参考下图。 提示:城市名称以及天气图片的显示,都可以使用字典变量分别将数字和城市名对应、天气和图片名对应。你可以参考下图完成两变量的初始设置: 附件下载 第十五课.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed