
CC喵
5分钟前:
前面两个章节我们讲了python的基本语法,是不是觉得略显枯燥呢,而且很多地方还是蒙圈的状态。不过没关系,后面我们再慢慢实践中会对这些概念慢慢深入理解并最终掌握。

我们在kittenblock里面的控制指令菜单找到“重复执行”方块,并拖出如下代码:

下载下去,当我们按下按钮的时候终端不停的打印button= True。

重复执行可以不停的执行它包裹着的代码。
但是这样好像还不是我想要的效果,满屏幕的打印信息其他东西都看不了了。这里我们要用上另外一个控制指令,条件判断。

将程序下载下去看看效果,发现啥都不干的时候终端没有任何输入,但是一旦按下按键A就会刷出来一连串的button=1。我家的电脑按下键盘只会输出一个字母,这明显还是哪里不对啊。
这是因为计算机的程序执行流程速度非常快,快到你还没松手就又进入下一个流程了,当然如果你手指速度够快可以让程序只输出一次按键值。

小提示:想拼手速的同学可以试试发送右边的'C'按钮,可以清除当前终端的显示。
那么该怎么办呢?一般大家家里的电器或者遥控器都有一个消抖动的过程,或者用软件或者用硬件电路实现。这里我们就用软件实现消抖动。
主要思路就是降低程序执行的速度,例如让它在哪里等一下。我们加上一个等待函数,里面填0.5秒。

将程序下载进去是不是发现只有当按下按钮的时候才输出一行打印信息,如果一直按着不放就会连续输出若干相同的打印字符串。
这里我们想继续玩花式,我不想把按键输出在丑陋的终端,我想显示在屏幕上,就跟我家的电脑一样。
我们继续改造代码,并且加上按键B

下载并看看实际效果,是不是发现当按下按键A有一个字母A飘过,而按下B有一个字母B飘过呢?
我们前面一直在用图形化方块在写代码,让我们看看现在的python程序到底是怎么样的?
#/bin/pythonfrom microbit import *while True:
if button_a.is_pressed():
display.scroll("A")
sleep(0.5*1000)
if button_b.is_pressed():
display.scroll("B")
sleep(0.5*1000)
sleep函数在我们的microbit工具箱中,大家往前翻一下microbit的dir打印就会发现它了。
这里多了几个新的关键字while、if,还有一些新的奇怪的代码格式
while字面意思就是当....就,if是如果...就。True的意思是真的或者是的,当他和while一起用则组合成死循环。
逻辑表达式
python的逻辑表达式都有如下结构

关键字:例如
while或者if还有for等等,根据关键字的不同程序的执行流程也不同条件表达式:可以是一个函数,或者一个逻辑值,也可能是一个数组等等。根据关键字有不同的类型
冒号:这个相当关键,如果没有这个冒号python解释器就不知道你在写一个条件表达式,而是当成一般的代码语句在处理
换行缩进:这个也相当重要,条件表达式的目标代码必须跟表达式本身具有不同的换行缩进。英文叫indent,如果大家后面看到报错中有indent这个单词多半是因为换行缩进没对齐。
为什么有换行缩进,因为这是python语言的设计方法,用于标定不同的作用域。玩Arduino的同学可能都碰到代码里面有各种花括号{xxx}包裹着代码,每个花括号之间是一个作用域。而python则用缩进符来表达作用域,拥有同一样缩进的代码拥有同样的作用域。
回到我们前面的代码,这里用不同的颜色将作用域标注出来了

其中黄色就是我们之前用lcoals()打印出来的作用域,绿色是while True:这个条件表达式控制的作用域。
注意蓝色和紫色是不同的作用域,虽然他们有相同的缩进但是作用域只在当前表达式下才起作用。
那么作用域的作用是啥?直观的理解就是它表述了当前代码可以使用的对象,就像你把你的工作桌面划成不同的区域,区块A拿来焊接东西,区块B拿来组装3D打印模型,区块C拿来调试代码一样。每个区域有不同的工具,区域间尽量保持不要窜用工具,这样才能保持桌面整齐。子作用域可以使用父作用域的对象,但是反过来则不行。
换行缩进的形式并不固定,程序员常见的有使用2个空格,4个空格或者直接用tab键的,大家调自己喜欢的方式就好了。当然因为缩进符的不同导致程序员间分成不同的派别,甚至有引发种族战争的也不在少数。
如果大家还是对作用域的概念感到很生涩,那么前期只要保证代码块对齐就行了,千万不要tab和空格键混用,这可是程序员的大忌会被全世界的码农鄙视的。
新品热卖中不来看看吗(点图查看详情)▼

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¥后到
◇綯℡寳
福利远远没有结束~
人工智能教程系列
机器学习教程系列
机器学习5(轻量TensorFlow)教程系列
物联网教程系列
物联网系列暂时完结
kittenblock软件教程更新
系列一:kittenblock学习指南教程
系列二:下载与安装

小喵科技QQ二群:444193538
小喵科技论坛:https://bbs.kittenbot.cn/forum.php
哔哩哔哩教程:https://space.bilibili.com/25299911
新浪微博@KittenBot小喵科技
微信公众号:KittenBot
官网:https://www.kittenbot.cn/





