大数跨境
0
0

【小喵科技】Micropython 教程:Python基础篇1

【小喵科技】Micropython 教程:Python基础篇1 KittenBot小喵
2019-10-29
0
导读:python已经是一门对细节容忍比较宽松的语言了,而其他语言就没这么友好了
关注小喵科技官方抖音,每天更新新奇好玩视频~

CC喵

5分钟前:

这一章我们就要学习python的一些比较细碎的,但是非常有用的东西,真是这些构成了任何一门编程语言的基础功



往期Micropython系列(点击查阅)

1.Micropython 教程:Microbit快速开始

2.2.5 Micropython的在线执行

3.5x5矩阵屏的花式玩法

4.显示字符和数字

注重细节的工作,需要比外科手术更高的细致,任何一点点细微的细节差错都可能导致运行结果大相庭径。不过好在python已经是一门对细节容忍比较宽松的语言了,而其他语言就没这么友好了。


1
Python基本计算和基本函数


python的基本四则运算和我们正常使用的没有什么不同,不过需要注意的是在编程语言中乘法一般是星号*,而不是x。除法符号是左斜杠/,而不是÷。还有就是计算优先级的问题,括号内的计算优先级最高,同一括号内乘法除法的优先级比加减高。这跟我们小学学到的四则运算基本一样。

大家可以试试将下面的方块拖到绿旗帜下面看看生成的代码和下载进去的运行效果。多试试就可掌握其中窍门,小喵家的创始人就说过运营就是要多试,其实编程也是一样。

串口打印结果

大家是不是发现像上面这样一个个方块拖到绿旗帜下面,并生成代码,之后再下载很不方便呢?

这里我解释另外一个python内置函数print,顾名思义print就是将对象打印到串口输出上。在编程语言中我们有一个更专业的称呼是终端,或者console。一般高级语言的程序都带至少有一个输出流和一个输入流,大家可以把这些流理解为管道,实际上操作系统也是把这些当做数据管道来处理。大家在未来接触到操作系统开发,或者学习微机原理的时候会详细了解。

Micropython的默认输出流就是串口,而默认的输入流还是串口。

我们将上面的四则运算程序改造成如下形式,并且下载到microbit上面。

看看是不是一下子就在终端将结果显示出来了。

我们来详细看看由方块生成的代码:

#/bin/pythonfrom microbit import *print('4 + 2=',4 + 2)print('4 - 2=',4 - 2)print('4 * 2=',4 * 2)print('4 / 2=',4 / 2)

可以看到每个print函数内由两部分组成,前半部分是一个单引号括住的字符串,后半部分基本一样只是没用引号括住。还记得我们之前说过,python下不管拿单引号、双引号还是三引号括住的部分都当做字符串处理。字符串扔给print函数,解释器会原封不动地将字符串输出到终端。而没有用括号括住的部分,解释器则认为它是一个表达式,会尝试对其进行计算并输出结果。



2
查看python的对象


还记得之前唠叨的“万物皆对象”的五字箴言吗?那么对象到底是什么呢?能看得到摸得着嘛?

有了print这个大杀器后我们就可以看清楚对象到底是什么。我们首先拿Microbit的库函数开刀:

import microbitprint(microbit)

返回值为 <module 'microbit'>,意思是microbit是一个名字叫microbit的模块。但是这个信息明显没什么意义,这里要用到另外两个python的内置函数typedir。我们将上面的代码改造一下,重新下载。

import microbitprint(microbit)print(type(microbit))print(dir(microbit))

打印返回如下

<module 'microbit'>

<class 'module'>

['__name__', 'Image', 'display', 'button_a', 'button_b', 'accelerometer', 'compass', 'i2c', 'uart', 'spi', 'reset', 'sleep', 'running_time', 'panic', 'temperature', 'pin0', 'pin1', 'pin2', 'pin3', 'pin4', 'pin5', 'pin6', 'pin7', 'pin8', 'pin9', 'pin10', 'pin11', 'pin12', 'pin13', 'pin14', 'pin15', 'pin16', 'pin19', 'pin20']

大家可以猜到,type返回的是对象原型,我们可以再试试之前我们已经接触到的几个变量类型。

#/bin/pythonfrom microbit import *a = Image.HEARTprint(type(a))b = 123print(type(b))c = "hello world"print(type(c))d = displayprint(type(d))

返回值分别是

<class 'MicroBitImage'>

<class 'int'>

<class 'str'>

<class 'MicroBitDisplay'>

大家可能会发现,不论是函数、数字、字符串还是一个内置常量返回都是class,这也就是“万物皆对象”。而对象的类型则不尽相同,但是好像str我们之前用过了,可以让一个数字变成字符串。那么int是不是就可以把字符串再变回为数字呢?我们马上来试一下,将下面代码下载到microbit上

#/bin/pythona = "12345"print(type(a))b = int(a)print(b)print(type(b))

返回值如下:

<class 'str'>

12345

<class 'int'>

果然跟猜测的一样吧,优秀的程序员会一直要保持浓厚的好奇心。为什么这么多程序员都喜欢猫,因为程序员跟猫一样对这个世界充满好奇。不要害怕出错或弄坏硬件,要多试试自己的猜想是不是正确,这些沉淀下来的最后都是宝贵的知识。

回到前面,除了type我们好像还用了另外一个函数dir,而且它返回的信息量更大。dir函数在python内犹如一台x光机的存在,它可以返回一个对象内的任何信息,并按照字母顺序输出。

['__name__', 'Image', 'display', 'button_a', 'button_b', 'accelerometer', 'compass', 'i2c', 'uart', 'spi', 'reset', 'sleep', 'running_time', 'panic', 'temperature', 'pin0', 'pin1', 'pin2', 'pin3', 'pin4', 'pin5', 'pin6', 'pin7', 'pin8', 'pin9', 'pin10', 'pin11', 'pin12', 'pin13', 'pin14', 'pin15', 'pin16', 'pin19', 'pin20']

细心的同学还会发现,我们前面用过的display对象和Image对象也在其中,而且还有好多没见过的东西在里面。这章就到这里结束了,想必看到这么多没见过的对象肯定有同学心里痒痒的,那么就自己写写代码做实验吧,看看你的猜想对不对。

其实这里面有好几个对象作者本人也是第一次见,现在迫不及待地去试试看到底是什么。


新品热卖中不来看看吗(点图查看详情)▼




先定金后尾款 超值就在11.11


时间详情

1、定金支付时间:10.21 00:00:00——11.10 21:59:59

2、尾款支付时间:11.11 01:00:00——11.11 23:59:59

3、在10.21 00:00:00后即可付定金购买,在11.11 02:00:00后付尾款即可

4、预售产品优惠吗?能享受双11当天的跨店满减和优惠券吗?

5、当然优惠!可以享受跨店满减和优惠券!并且优先发货!价格保价双11



举个栗子:商品预售价格1000元,其中定金200元。您有1张店铺优惠券(满1000元减100元);跨店满减,满200元减20元。您支付尾款时,店铺优惠券以预售价1000元为计算门槛,可以使用店铺优惠券。跨店满减也以预售价1000元为计算门槛,可以使用跨店满减。故尾款需支付1000(预售价)-200(定金)-100(店铺优惠券)-20*5(跨店满减)=600元。

风语喵

风语喵


【KittenBot小喵科技】

https://m.tb.cn/h.eKrzjrC?sm=f5d6fa 

点击链接,再选择浏览器咑閞;或椱ァ製这段描述¥XoVEYqtlhCD¥后到◇綯℡寳


福利远远没有结束~



手机上控制Microbit主板

回顾“圾类”那些事~100+种类的识别分类学习套件

专注DIY设计,详细解读Nanobit迷你主控板!



精彩教程作品

人工智能教程系列

系列一:中小学人工智能应该怎么学习 

系列二:文字朗读

系列三:文字翻译

系列四:语言识别

系列五:超级翻译官

系列六:专家系统

系列七:视觉识别01初探

系列八:视觉识别02人脸追踪

系列九:视觉识别03人脸检测

系列十:视觉识别04特定人脸辨别

系列十一:视觉识别05识别车牌

系列十二:视觉识别06识别印刷文字


机器学习教程系列

系列一:Tensorflow简介

系列二:TensorFlow快速开始(程序包集合)

系列三:鸢尾花(Iris)分类

系列四:MNIST 手写数字识别

系列五六:MNIST模型保存加载和识别

系列七:MobileNet模型任意物体识别

系列八:MachineLearning5 简介


机器学习5(轻量TensorFlow)教程系列

系列一:MachineLearning5 简介

系列二:图像分类器---看图识物

系列三:图像分类器---识别给定的图片

系列四:图像分类器---识别摄像头窗口物体

系列五:特征提取器入门

系列六:特征提取器---剪刀石头布为例

系列七:特征提取器---识别不同颜色

系列八:涂鸦KNN应用

系列九:骨架追踪


物联网教程系列

系列一:什么是物联网?

系列二:kittenblock本地IOT服务器--快速上手

系列三:kittenblock本地IOT服务器--温度推送

系列四:喵家外网IOT服务器

系列五:让microbit加入IOT

系列六:让rosbot加入IOT

系列七:中国移动Onenet使用--能量魔块

系列八:Thingspeak中应用--Microbit

物联网系列暂时完结


kittenblock软件教程更新

系列一:kittenblock学习指南教程

系列二:下载与安装

系列三:工具栏详解

系列四:编程积木分栏

系列五:舞台展示区

系列六:书包功能

系列七:列表导入导出功能

系列八:护眼模式切换,在线和离线模式

系列九:连接引擎使用简介

系列十:Thing Speak使用介绍

系列十一:自动化插件生成系统

系列十二:软件中界面翻译和插件翻译

系列十三:和风天气插件开发指南

系列十四:Kittenblock插件开发指南 -- 01

系列十五:Kittenblock插件开发指南 -- 02


小喵科技QQ二群:444193538

小喵科技论坛:https://bbs.kittenbot.cn/forum.php

哔哩哔哩教程:https://space.bilibili.com/25299911

新浪微博@KittenBot小喵科技

微信公众号:KittenBot

官网:https://www.kittenbot.cn/

【声明】内容源于网络
0
0
KittenBot小喵
专注于从入门到精通的移动机器人开源学习平台
内容 560
粉丝 0
KittenBot小喵 专注于从入门到精通的移动机器人开源学习平台
总阅读98
粉丝0
内容560