Skip to content

活动

奇数与偶数

中级 | MakeCode, Python | LED显示器, 按钮 | 数字 & 位置值, 算法, 选择, 除法

第 1 步:制作

它是什么?

用您BBC micro:bit玩一个数学游戏! 给它编程,让它从1到100中选择一个随机数。 您可以先自己看看这个随机数是奇数还是偶数,然后再用您的micro:bit检查一下您是否正确。

这两个视频介绍了你将制作什么以及如何编程:

学习目标

您将学到如何将一个简单的数学算法编写成代码,如何在计算机程序中使用选择,以及如何除以一个数字并使用它的余数。

如果您想集中学习数学技能而不是编程上,那么可以下载现成的代码。 点击“Open in MakeCode” 按钮或者在下文里下载hex文件。

工作原理

  • 这个程序基于一个算法,这算法用来判断一个数字是奇数还是偶数。 这个算法是这样子的:一个数除以2,如果余数为0,那么这个数字就是偶数。 否则,这个数字就是奇数。
  • 当您按下按钮A,程序从1到100中抽取一个数字,然后显示到LED显示屏上。 (程序抽取随机数字而不是一直使用同一个数字,让多次游玩这个游戏能一直有趣。)
  • 当您按下按钮B,程序会将上面抽出的数字除以2并得出余数。 
  • 程序接着使用的是一个“if ... else”语句。 如果(if)余数是0,micro:bit的LED显示屏上显示单词“even”(偶数)。 否则(else),显示单词‘odd’(奇数)。
  • 在计算机程序里,条件不同时要做不同的事情,这被称为选择。 像选择这样的关键术语的解释,可以在我们的词汇海报术语表中找到。

所需材料

  • micro:bit或者是MakeCode模拟器
  • MakeCode 或者 Python 编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2import random
3
4# An error could appear if you press button B without pressing button A first.
5# If the variable ‘number’ has not been assigned.
6# To work around this, the value of 101 is assigned to the variable 'number' 
7# at the start of the program. When you press button B the program tests 
8# first to see if the value of ‘number’ is 101 - if it is, it shows a helpful message.
9
10number = 101
11
12while True:
13    if button_a.was_pressed():
14        number = random.randint(1, 100)
15        display.scroll(number)   
16    if button_b.was_pressed():
17        if number == 101:
18            display.scroll('no number chosen yet') 
19        elif number%2 == 0:
20            display.scroll('even')   
21        else:
22            display.scroll('odd') 

第3步:完善

  • 想个法子让被抽到的随机数字能够显示多次。
  • 如果您在按下按钮A之前就按了按钮B,尽管没有随机抽取数字,此时LED屏幕还是会显示单词“even”(偶数)。 您能修改代码来避免这种情况吗? 看一下Python版本的的程序代码来获得灵感。
  • 修改程序,使它能够探索随机数字的其他因数,例如,看看3是不是100的一个因数。