Compare, Find, Check

Sometimes, a script needs to check a string for an exact match.  If it's not an exact match, the program won't continue!  Password protection is an example of this. 

Other times, a script might need to ignore strings that don't contain a certain substring.  For example, a radio-broadcasting micro:bit might send names with different ID strings and commands.  Each micro:bit can be running a script that looks for its own ID string and only take action if it detects it in the string.

Example script: comp_find_check_intro

  • Enter this script and save it as comp_find_check_intro.  
  • Flash the script into the micro:bit.
# comp_find_check_intro

from microbit import *

sleep(1000)

password = "shrubbery"

while True:
    s = input("Enter password: ")
    if(s == password):
        break
    else:
        print("Password incorrect.")

print("You are now in the")
print("password protected")
print("part of the script.")
  • Open the terminal.
  • Try typing in various passwords that are not shrubbery.  Press enter after each phrase.  Verify that those passwords are rejected!
  • Now, try typing shrubbery, and verify that you have advanced to the password-protected part of the program.

 

How comp_find_check_intro Works

A string variable named password is declared as "shrubbery".

password = "shrubbery"

Inside a while True loop, the first step is to prompt the user (that's you) for a password.  The result you type is stored in the variable s.

while True:
    s = input("Enter password: ")

Next, an if...else... statement checks if the input you typed, which is stored in s, matches the password variable.  The if... statement uses the equal to == operator, which returns True if the two strings match, or False if they don't.  When the two strings do match, the break statement "breaks out of" the while True loop and moves on to the password-protected part of the script.  When it doesn't match, the script just displays "Password incorrect."  After that, the while True loop repeats.

    if(s == password):
        break
    else:
        print("Password incorrect.")

The script only reaches this point if the user typed the correct password..

print("You are now in the")
print("password protected")
print("part of the script.")