2022-12-15 17:01:32 [显示全部楼层]
10582浏览
查看: 10582|回复: 10

[教程] 【行空板图形化Python入门教程】第15课:天气助手

[复制链接]
本帖最后由 Doughnut 于 2022-12-15 17:01 编辑

第15课 天气助手


准备外出旅游的时候,查询天气,选择合适的衣物是非常重要的准备工作,今天我们就利用行空板来做一个“天气助手”,来帮你查询计划出行的城市天气吧。

【行空板图形化Python入门教程】第15课:天气助手图1


任务目标

行空板屏幕显示当前城市、天气、日期及温度。



知识点

1. 了解程序中的接口知识

2. 掌握程序中字典的基本使用方法

3. 掌握获取天气信息的方法

材料清单

1. 硬件清单


【行空板图形化Python入门教程】第15课:天气助手图2


行空板x1


【行空板图形化Python入门教程】第15课:天气助手图3


Type-C&Micro二合一USB线x1


2. 软件使用

Mind+编程软件x1,下载地址:https://www.mindplus.cc

【行空板图形化Python入门教程】第15课:天气助手图4



动手实践

天气助手的主要功能是通过网络获取和显示城市的天气和气温。具体如何实现呢?接下来我们就分两个任务来完成吧。

任务一:获得天气数据

在此任务中,我们将学习利用“天气API”开放平台获得并显示天气数据。

任务二:显示指定天气信息

基于已获得天气数据,我们将进一步学习字典知识,完成数据筛选,显示所需天气信息。


任务一:获得天气数据

1. 硬件搭建


使用USB连接线将行空板连接到计算机。

【行空板图形化Python入门教程】第15课:天气助手图5


2. 软件准备

打开Mind+,按照下面图示完成软件准备过程。

【行空板图形化Python入门教程】第15课:天气助手图6

3. 编写程序

手机中显示的天气数据都是通过网络获取的,行空板也类似。接下来我们就来学习获取天气数据的方法。

天气数据需要通过“接口”获得,本节课我们使用“天气API”获取。

注意:关于“接口”知识,参见“知识园地”。

首先,访问天气API网站(https://tianqiapi.com/),完成注册和登录;

【行空板图形化Python入门教程】第15课:天气助手图7

【行空板图形化Python入门教程】第15课:天气助手图8

然后,点击“返回天气API官网”→选择“API文档”查询免费天气接口;

【行空板图形化Python入门教程】第15课:天气助手图9

免费天气信息在API文档左边栏的“免费基础实况天气”中,另外,在右边的“请求示例”下方就是要使用的接口网址。

【行空板图形化Python入门教程】第15课:天气助手图10


你也可以复制访问该网址,查看当前所在城市的天气数据,你能看懂数据中数值的含义吗。

【行空板图形化Python入门教程】第15课:天气助手图11


另外,如果你想更换城市的天气数据,只需要在接口网址末尾加上“&city=某城市”,比如,杭州天气的接口网址为:"https://www.yiketianqi.com/free/day?appid=xxxx&appsecret=xxxx&unescape=1&city=杭州"

天气数据已经获得,如何放进程序呢?这需要通过“Requests模块”对天气API发出请求才能获取数据。

点击“扩展”→“官方库”中,找到“Requests”并添加。

【行空板图形化Python入门教程】第15课:天气助手图12


接下来,就可以在“Requests”分类下找到对应指令,本节课我们要使用的是 发起一个GET请求“” 指令向天气API发出请求,以及 解析 请求内容为 文本格式 将获取数据转化成刚才网页中看到的样子。

【行空板图形化Python入门教程】第15课:天气助手图13


注意解析 请求内容为 文本格式 指令解析数据时有三种格式可选,文本格式是字符串形式;二进制格式是指二进制类型串(bytes类型),你可以把它理解成由二进制数组成的字符串;JSON格式是打包好的数据格式,可以用关键字找到对应的数据。为了方便待会处理数据,这里选择JSON格式。

为了更好理解代码,实现时可以建立 url、response以及data 三个变量来分别储存接口网址、请求响应、天气数据。

【行空板图形化Python入门教程】第15课:天气助手图14


为了更方便的修改城市,使用字符串连接指令 合并天气接口网址 城市,将城市和接口主要网址部分分开。

【行空板图形化Python入门教程】第15课:天气助手图15

接下来,你可以直接将 data变量 显示在行空板上,为了更完整的看到天气数据,可以设定显示的字体大小和文字宽度。完整参考代码如下:

【行空板图形化Python入门教程】第15课:天气助手图16

4. 程序运行

运行代码前,你需要使用上节课的方法,让行空板连上无线网络;

点击运行,等待数据获取成功后,屏幕居中显示获得的完整天气数据。

【行空板图形化Python入门教程】第15课:天气助手图17



任务二:显示指定天气信息

1. 编写程序


在任务一中,我们已经成功获得天气数据,但显示的内容过于复杂,其实只需要“城市”、“日期”、“天气”以及“气温”即可。也就是说,我们需要从 data变量 中筛选出我们所需的信息,如何完成呢?

其实,现在你看到的数据形式是Python中的“字典”,它是通过“:”将前后两个内容绑定的数据类型,可以通过“:”前的“键”获得冒号后的“值”。

注意:关于程序中的“字典”知识,参见“知识园地”。

【行空板图形化Python入门教程】第15课:天气助手图18


“字典”相关的操作指令,在“指令区”的“字典”分类下,要获取“值”,需要使用 字典{}键“ ”的值 指令并填好“字典”和“键”的内容,比如要获得上图中的日期,可以使用 字典data变量键”date”的值

【行空板图形化Python入门教程】第15课:天气助手图19


然后,你就可以将获取的日期信息显示在行空板屏幕上了。

【行空板图形化Python入门教程】第15课:天气助手图20


同样的,所在城市、天气和温度信息可以用“city”、“wea”和“tem”三个键获得。当然,显示的时候可以加入一些文字提示。完整参考代码如下:

【行空板图形化Python入门教程】第15课:天气助手图21


2. 程序运行

检查行空板连接情况,点击运行,等待一会,显示代码填写城市天气、日期等信息。

【行空板图形化Python入门教程】第15课:天气助手图22


知识园地

1. 程序中的接口


应用程序接口,又叫接口(简称API)它是用来提供一些功能或数据的程序。你可以把它理解成一个别人定义的功能函数,使用时你不需要访问源码,也不需要知道实现原理,只要给出参数并调用函数,就会得出你想要的数据。就像本节课项目中的“天气API”,网址对应着参数,输入网址并通过访问网站调用对应的功能函数,就可以获取天气数据,不需要知道这些数据是通过什么手段得到的。

【行空板图形化Python入门教程】第15课:天气助手图23


接口的出现是为了让写代码的人可以更方便的实现更多的应用,也正因如此,接口的输入参数和编写需要更加规范。其实,你可以在很多场景中使用接口,在程序内使用系统定义的函数和指令,直接下载安装别的公司或开发者写好的库,甚至你可以直接通过网络平台,远程调用更强大的功能,就像本节课通过“天气API”获得天气数据,上节课的“讯飞开放平台”获得语音识别功能。

2. 程序中的字典

字典是Python程序中基础数据类型之一,它常被用来表示数据之间一一对应的关系,比如:姓名和学号、游戏中的技能和伤害点。字典是由“{}”构成,当大括号里什么都没有时,表示空字典;有数据时,数据以“键值对”存在,每个“键值对”形式为“键:值”,多个“键值对”用逗号隔开。

注意:所有符号都是英文符号

【行空板图形化Python入门教程】第15课:天气助手图24


在图形化指令中,在指令区“字典”分类下找到 操作字典的指令 。对于上图中的例子,我们可以使用 初始化字典{ : } number变量 来建立字典,同时使用 字典number键“小明”的值 读取上图number变量中“小明”的学号。

【行空板图形化Python入门教程】第15课:天气助手图25


3. 指令学习

本项目主要使用了学习了网络请求、字典相关指令,接下来我们就详细学习一下。

【行空板图形化Python入门教程】第15课:天气助手图26


该指令用于对于个网址发出连接请求,使用时需要写明网址内容。




【行空板图形化Python入门教程】第15课:天气助手图27


该指令用于解析网络请求获得的响应数据。数据可转化为文本格式、JSON格式以及二进制格式。




【行空板图形化Python入门教程】第15课:天气助手图28


该指令用于建立一个字典数据。




【行空板图形化Python入门教程】第15课:天气助手图29


该指令用于读取字典中键对应的值。


挑战自我

在本项目中你已经完成了不同城市的天气消息获取,现在请你设计界面布局,完成下面任务:

1、添加切换城市按钮,实现开始显示当前所在城市天气,当切换不同的城市后,按下行空板A键更新对应城市天气;

2、使用素材文件夹中的图片素材,给不同的天气配上不同的图片,当然你也可以显示不同的信息在你的行空板上,界面设计可参考下图。

【行空板图形化Python入门教程】第15课:天气助手图30


提示:城市名称以及天气图片的显示,都可以使用字典变量分别将数字和城市名对应、天气和图片名对应。你可以参考下图完成两变量的初始设置:

【行空板图形化Python入门教程】第15课:天气助手图31


附件下载
下载附件第十五课.zip

评分

参与人数 1贡献 +5 经验值 +5 收起 理由
陈玉玮 + 5 + 5

查看全部评分

陈玉玮  中级技师

发表于 2022-12-19 17:08:08

厉害了,竟然没有人评论?
回复

使用道具 举报

陈玉玮  中级技师

发表于 2022-12-19 17:09:31

浅浅的评个分,创造力有限不好意思了doge
回复

使用道具 举报

陈玉玮  中级技师

发表于 2022-12-19 17:11:28

喔喔喔,get到好想法了,多谢版主(顺便把地板也承包了)
回复

使用道具 举报

木子呢  管理员
 楼主|

发表于 2022-12-21 11:36:51

陈玉玮 发表于 2022-12-19 17:11
喔喔喔,get到好想法了,多谢版主(顺便把地板也承包了)

感谢支持
回复

使用道具 举报

DFSyBM3-i4u  中级技师

发表于 2023-7-21 16:05:55

这个报错是行空板没联网的原因
FriJuly-202307216769..png
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-8-1 22:38:34

不错啊!!厉害!
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-8-1 22:39:37

教程很详细,太赞了!学习一下!
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-2 23:05:14

厉害厉害
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-2 23:06:19

教程详细,赞赞赞!
回复

使用道具 举报

手机连接万物  中级技师

发表于 2023-12-5 13:56:22

学习了,好教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail