Learning Python 3 with the Linkbot/Hello, World

From LinkbotLabs
Jump to: navigation, search
Standards
Common Core Math Practice Standards: CCSS.MATH.PRACTICE.MP5 Use appropriate tools strategically.
Computer Science Teachers Association Standards: L1:3.CT.4:Recognize that software is created to control
computer operations
Next Generation Science Standards:Practice 8 Obtaining, Evaluating, and Communicating Information
Vocabulary
Python Editor: A program used to create a block of text that will be sent to Python and interpreted. In this
book we recommend PyCharm or IDLE 3.
Line: A single sentence of programming code.  Lines of code can be used to measure the size of a program and
compare it to other programs.
Function: A type of procedure or routine, a set of instructions to follow.
Argument: Data provided to a function as input.  This is like the domain in algebra.


String: A sequence of characters representing either a constant or a variable.
Function Call: An expression with the name of a function and the inputs inside parentheses.  Multiple inputs are separated by commas.
Statement: A single line of text 
Comment: A description of what this part of the program is for.  It is not treated as code and is not run.

Necessary Materials and Resources

Learning Objectives

Once you've completed this chapter, you will know how to edit programs in a Python Editor, IDLE 3, or some other text editor, save them, and run them.

Printing

"Remember, whenever you see code as an example, it's a good idea for you to type it in and run it. Learning by doing can be a powerful tool! It is worth the time it takes."

Now for our first lesson, what is a computer program? A computer program is a set of very detailed instructions that tell a computer what to do. Since the beginning of programming tutorials, "Hello, World!"[1] has been the first foray into creating something on the screen, here is how to do it with Python:

print("Hello, World!")

If you are using the command line to run this program, then type it in a text editor, save it as hello.py and run it with python3.0 hello.py

Otherwise go into your Python Editor, create a new file (Ctrl + N for IDLE), and create the program as in section Creating and Running Programs.

When this program is run here's what it prints:


Hello, World!



Now here is a program with multiple print commands:

print("Finally,")
print("from so little sleeping and so much reading,")
print("his brain dried up and he went completely out of his mind.")
print("            --Miguel de Cervantes, Don Quixote")

When you run this program it prints out:

Finally,
from so little sleeping and so much reading,
his brain dried up and he went completely out of his mind.
            --Miguel de Cervantes, Don Quixote

When the computer runs this program it first sees the line (like one sentence of code):

print("Finally,")

so the computer prints:

Finally,

Then the computer goes down to the next line and sees:

print("from so little sleeping and so much reading,")

So the computer prints to the screen:

from so little sleeping and so much reading,

The computer keeps looking at each line, follows the command and then goes on to the next line. The computer keeps running commands until it reaches the end of the program.

Controlling a Linkbot LED Color

Linkbots are equipped with a multi-color LED, which is basically just a light that can change colors. Lets try a simple program to control the LED color on a Linkbot. To get started, follow these steps:

  • Turn on your Linkbot by holding down the power button until the Linkbot flashes a bright red light.
  • After about 5 seconds, the Linkbot will beep and show a blue light. Your Linkbot is now on!
  • Take a Micro-USB cable and connect the Linkbot to your computer.
  • Open your text editor and try the following code.
"Don't worry too much if you don't understand what's going on in the first four lines of this program. All of those concepts will be covered in later chapters. For now, just know that if you want to control a Barobo Linkbot, those four lines (or similar lines) are necessary."
# File: 01_led_color.py
import linkbot
myLinkbot = linkbot.CLinkbot()
 
myLinkbot.setLedColor(0, 255, 0)


When you run this program, you should notice that your Linkbot LED turned green! In the code that you wrote, there were three numbers: 0, 255, and 0. These three numbers determine the brightness of the red, green, and blue LEDs inside the linkbot, where 0 denotes the lowest brightness setting and 255 the maximum setting. If you want to try making your Linkbot a brilliant purple color, try setting the color numbers to "255, 0, 255". This tells the Linkbot to turn on its red and blue LED's to their maximum brightness. When the red light blends with the blue light, it appears purple!

Here is a modified 'Hello World' using the Linkbot to say hello. When Python executes your code, it ignores any code on a line that follows the # character. This way, the programmer can add text and explanations in their code meant for a human to read that is ignored by the computer. These lines of text are called Comments in programming lingo.

# File: 02_buzzer.py
import linkbot   # loads 'linkbot' module
import time     # loads 'time' module
 
robot = linkbot.CLinkbot()   # Gets a handle to the robot currently connected 
                            # with a USB cable.         
 
robot.setBuzzerFrequency(1047)     # Tells the robot to begin emitting a 1047
                                   # Hz tone.
 
time.sleep(0.25)                   # Wait for 0.25 seconds
 
robot.setBuzzerFrequency(1567)     # Change the tone to 1567 Hz.
time.sleep(0.5)                    # Wait for 0.5 seconds.
robot.setBuzzerFrequency(0)        # Turn off tone.

Feel free to change the frequency of the buzzer to change the tone, and the duration of time.sleep to see what that does to the greeting.

Terminology

Now is probably a good time to give you a bit of an explanation of what is happening - and a little bit of programming terminology.

What we were doing above was using a function called print. The function's name - print - is followed by parentheses containing zero or more arguments. So in this example

print("Hello, World!")

there is one argument, which is "Hello, World!". Note that this argument is a group of characters enclosed in double quotes (""). This is commonly referred to as a string of characters, or string, for short. Another example of a string is "Jack and Jill went up a hill". The combination of a function and parentheses with the arguments is a function call.

A function and its arguments are one type of statement that python uses, for example:

print("Hello, World!")

Basically, you can think of a statement as a single line in a program.

That's probably more than enough terminology for now.

Expressions

Here is another program:

print("2 + 2 is", 2 + 2)
print("3 * 4 is", 3 * 4)
print("100 - 1 is", 100 - 1)
print("(33 + 2) / 5 + 11.5 is", (33 + 2) / 5 + 11.5)

And here is the output when the program is run:

2 + 2 is 4
3 * 4 is 12
100 - 1 is 99
(33 + 2) / 5 + 11.5 is 18.5

As you can see, Python can turn your thousand-dollar computer into a five-dollar calculator.

In this example, the print function is followed by two arguments, with each of the arguments separated by a comma. So with the first line of the program

print("2 + 2 is", 2 + 2)

The first argument is the string "2 + 2 is" and the second argument is the mathematical expression 2 + 2, which is commonly referred to as an expression.

What is important to note is that a string is printed as is (without the enclosing double quotes), but an expression is evaluated, or converted to its actual value.

Python has seven basic operations for numbers:

Operation Symbol Example
Power (exponentiation) ** 5 ** 2 == 25
Multiplication * 2 * 3 == 6
Division / 14 / 3 == 4.666666666666667
Integer Division // 14 // 3 == 4
Remainder (modulo) % 14 % 3 == 2
Addition + 1 + 2 == 3
Subtraction - 4 - 3 == 1

Notice that there are two ways to do division, one that returns the repeating decimal, and the other that can get the remainder and the whole number. The order of operations is the same as in math:

  • parentheses ()
  • exponents **
  • multiplication *, division /, integer division //, and remainder %
  • addition + and subtraction -

So use parentheses to structure your formulas when needed.

Talking to humans (and other intelligent beings)

Often in programming you are doing something complicated and may not in the future remember what you did. When this happens the program should probably be commented. A comment is a note to you and other programmers explaining what is happening. For example:

# Not quite PI, but a credible approximation
print(22 / 7)

Which outputs

3.14285714286

Notice that the comment starts with a hash: #. Comments are used to communicate with others who read the program and your future self to make clear what is complicated.

Any text can follow a comment. When the program is executed, the text after the # through to the end of that line is ignored. The # does not have to be at the beginning of a new line:

# Output PI on the screen
print(22 / 7) # Well, just a good approximation

Examples

Each chapter (eventually) will contain examples of the programming features introduced in the chapter. You should at least look over them and see if you understand them. If you don't, you may want to type them in and see what happens. Mess around with them, change them and see what happens.

Greatness.py

print("Be not afraid of greatness. Some are born great, some achieve greatness, and others have greatness thrust upon them.")
print("                -- Shakespeare")

Output:

Be not afraid of greatness. Some are born great, some achieve greatness, and others have greatness thrust upon them.
                -- Shakespeare

School.py

# This is not quite true outside of USA
# and is based on my dim memories of my younger years
print("First-ish Grade")
print("1 + 1 =", 1 + 1)
print("2 + 4 =", 2 + 4)
print("5 - 2 =", 5 - 2)
print()
print("Third-ish Grade")
print("243 - 23 =", 243 - 23)
print("12 * 4 =", 12 * 4)
print("12 / 3 =", 12 / 3)
print("13 / 3 =", 13 // 3, "R", 13 % 3)
print()
print("Junior High")
print("123.56 - 62.12 =", 123.56 - 62.12)
print("(4 + 3) * 2 =", (4 + 3) * 2)
print("4 + 3 * 2 =", 4 + 3 * 2)
print("3 ** 2 =", 3 ** 2)

Output:

First-ish Grade
1 + 1 = 2
2 + 4 = 6
5 - 2 = 3

Third-ish Grade
243 - 23 = 220
12 * 4 = 48
12 / 3 = 4
13 / 3 = 4 R 1

Junior High
123.56 - 62.12 = 61.44
(4 + 3) * 2 = 14
4 + 3 * 2 = 10
3 ** 2 = 9

Exercises

  1. Write a program that prints your full name and your birthday as separate strings.
  2. Write a program that shows the use of all 7 math functions.
Solution

1. Write a program that prints your full name and your birthday as separate strings.

print("Ada Lovelace", "born on", "November 27, 1852")
print("Albert Einstein", "born on", "14 March 1879")
print(("John Smith"), ("born on"), ("14 March 1879"))


Solution

2. Write a program that shows the use of all 7 math functions.

print("5**5 = ", 5**5)
print("6*7 = ", 6*7)
print("56/8 = ", 56/8)
print("14//6 = ", 14//6)
print("14%6 = ", 14%6)
print("5+6 = ", 5+6)
print("9-0 = ", 9-0)



Footnotes

  1. [Here] is a great list of the famous "Hello, world!" program in many programming languages. Just so that you know how simple Python can be...
Learning Python 3 with the Linkbot
 ← Intro Hello, World Who Goes There? →