2. Combined iteration using zip
2.1. zip 2 lists
zip(list1, list2)
, is like a list of tuples.list(zip(list1, list2))
, the list of tuples below is: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
for num, letter in tuple_list:
from microbit import *
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
for num, letter in zip(list1, list2):
display.scroll(num, delay=80)
display.scroll(letter, delay=80)
freqs = range(1760, 880, -128)
produces a list like object containing 7 frequencies.break
so that the sounds can be easily stopped.from microbit import *
import music
freqs = range(1760, 880, -128)
animal_images = [
Image.RABBIT,
Image.COW,
Image.DUCK,
Image.TORTOISE,
Image.BUTTERFLY,
Image.GIRAFFE,
Image.SNAKE,
]
while True:
for freq, img in zip(freqs, animal_images):
music.pitch(freq, duration=250)
display.show(img, delay=250)
if button_a.is_pressed():
display.clear()
break
for freq, img in zip(Am_freqs, animal_images)
iterates over the zipped object, placing each frequency and each Image into the freq
and img
variables for use.break
so that the sounds can be easily stopped.from microbit import *
import music
animal_images = [
Image.HAPPY,
Image.SMILE,
Image.SAD,
Image.CONFUSED,
Image.ANGRY,
Image.ASLEEP,
Image.SURPRISED,
Image.SILLY,
]
Am_freqs = [440, 494, 523, 587, 659, 698, 784, 880]
timing = 400
while True:
for freq, img in zip(Am_freqs, animal_images):
display.show(img, delay=timing)
music.pitch(freq, duration=timing)
if button_a.is_pressed():
display.clear()
break
Exercises
Make a list of 8 arrows and a list of 8 frequencies to play. Write code to show each image as each frequency is played.
Make a list of 12 clock hands and a list of 12 frequencies to play. Write code to show each image as each frequency is played.
Make a list of 8 arrows and a list of 8 frequencies to play. Write code to show each image as each frequency is played.
from microbit import *
Make a list of 12 clock hands and a list of 12 frequencies to play. Write code to show each image as each frequency is played.
from microbit import *
2.2. zip 3 lists
for freq, img, pin_x in zip(freqs, animal_images, pins)
iterates over the zipped object, placing each frequency, each Image, and each pin into the freq
, img
and pins
variables for use.break
so that the actions can be easily stopped.from microbit import *
import music
freqs = [440, 494, 523, 587, 659, 698, 784]
animal_images = [
Image.RABBIT,
Image.COW,
Image.DUCK,
Image.TORTOISE,
Image.BUTTERFLY,
Image.GIRAFFE,
Image.SNAKE,
]
pins = [pin0, pin1, pin2, pin1, pin0, pin1, pin2]
timing = 400
while True:
for freq, img, pin_x in zip(freqs, animal_images, pins):
music.pitch(freq, duration=timing)
display.show(img, delay=timing)
pin_x.write_digital(1)
sleep(timing)
pin_x.write_digital(0)
if button_a.is_pressed():
display.clear()
break
Exercises
Make a list of images, a list of pitches, and a list of LEDS and iterate over them by using the zip function.
Make a list of 8 arrows and a list of 8 frequencies to play. Write code to show each image as each frequency is played.
from microbit import *
Make a list of 12 clock hands and a list of 12 frequencies to play. Write code to show each image as each frequency is played.
from microbit import *