Skip to content

Latest commit

 

History

History
75 lines (47 loc) · 2.47 KB

File metadata and controls

75 lines (47 loc) · 2.47 KB
title microbit Sorting Hat for Python
layout text-width-sidebar
meta-description Python code to make a Harry Potter sorting hat for the microbit.
simple-description Sorting Hat
share true
comments true
author jez
strapline `random` to pick an item from a list
aboutbox Pick a random item from a list when the microbit button is pressed.
cats easy
date 2016-12-23 10:20:00 UTC
date-updated 2016-12-23 10:20:00 UTC

{% highlight python %} {% include_relative code/sorting-hat.py %} {% endhighlight %}

How it Works

Create a List of Hogwarts Houses

The names are loaded into a list. In the example above the list is created over 5 lines making it easier to read. A list can be created on one line too:

{% highlight python %} HOUSES = ["Gryffindor", "Slytherin", "Ravenclaw", "Hufflepuff",] {% endhighlight %}

A list contains "objects" (the Python way to say "whatsists", "thingamabobs" or "doodahs"). An object can be any type of thing. In this example the objects are strings (of characters) so the value is surrounded by quotation marks like this: "Gryffindor".

random.choice(HOUSES)

When button_a is pressed, the micro:bit's display scrolls a random house (or in code: display.scroll(random.choice(HOUSES))). It uses the random.choice method to randomly choose an object in the HOUSES list. How simple is that?

random.choice requires the random module. This is not included by defaults so we need to import it:

{% highlight python %} import microbit from * import random {% endhighlight %}

{% include box.html content="what-to-import" %}

What is sleep(100)?

while True: puts the micro:bit into an infinite loop. This means the micro:bit repeats the program's loop as fast as it can. The program runs so fast that the processor cannot keep up and the micro:bit crashes.

sleep(100) makes the processor do nothing for 100 milliseconds (or .1 of a second). This slows down the program so the processor can keep up. The processor in your micro:bit is so fast that microbit.sleep(1) is enough of a wait.

Computer or phone crashes are often caused by badly written code that creates an infinite loop!