Operation Manual
Previously, you’ve been using a single equals symbol to set the value of variables. The while loop, however, uses two. Using two equals symbols next to
each other performs an evaluation, which compares a variable’s value to whatever follows. A single equals symbol instead sets the variable to the value that
follows.
There are other evaluations as well as the double-equals, which is only true if the variable matches the given value exactly: > means greater than, < means less
than, >= means greater than or equal to, <= means less than or equal to, and != means not equal to.
Using these evaluation symbols, you can control the flow of a program according to the rules of Boolean logic. For more information on Boolean logic, see
Chapter 10, “An Introduction to Scratch”.
The first line creates a new variable called goAgain and sets it to 1. The second line begins the loop, and tells Python that while
the goAgain variable is equal to 1, it should continue to loop through the following code. As the next few lines are written, they
will need to be indented by inserting four spaces at the start of each line. These spaces tell Python which lines are part of the loop
and which lines are outside the loop. If you’re using IDLE, the spaces will be inserted automatically; if you’re using a text editor,
remember to insert the spaces manually.
In its most basic form, a calculator takes two numbers as input and performs a mathematical operation on them. To make your
calculator work, first take the two numbers from the user with the following lines:
firstNumber = int(raw_input(“Type the first number: “))
secondNumber = int(raw_input(“Type the second number: “))
These lines not only use the raw_input instruction to ask for two numbers, but they also use int. Short for integer, the int
instruction tells Python to treat input as a number rather than a string. Obviously, this is important for a calculator program since it
won’t be calculating words.
With the two numbers stored as variables, the program can perform its calculations. Type the following lines, which add, subtract
and multiply the two numbers and send the output to the user:
print firstNumber, “added to”, secondNumber, “equals”,
firstNumber + secondNumber
print firstNumber, “minus”, secondNumber, “equals”,
firstNumber - secondNumber
print firstNumber, “multiplied by”, secondNumber, “equals”,
firstNumber * secondNumber
Notice that while the addition and subtraction operations use the expected plus and minus symbols, multiplication uses the *
symbol. Also notice that there are no formatting spaces between the quotation marks. This is because Python automatically adds
spaces where required when it prints integers and strings together. Finally, note that there is no division operation (which would
be indicated with the / symbol). This is because the example calculator program uses integers, which can only be whole numbers,
with no decimal places or fractions allowed.
Although the calculation part of the program is now complete, it will run forever because there is currently nothing to tell Python
when it’s time to exit the loop. To provide the user with a way to exit the program, add the following line:
goAgain = int(raw_input(“Type 1 to enter more numbers,
or any other number to quit: “))
This allows the user to change the goAgain variable, which controls the while loop. If the user enters the number 1, the
goAgain variable is still equal to 1 and the loop will run again. However, if the user enters any other number, the evaluation is no
longer true (goAgain is no longer equal to 1), and the loop will end.
The finished program should look like this, remembering that anything marked with should be entered onto a single line:
#!/usr/bin/env python
# Example 2: A Python program from the
Raspberry Pi User Guide
userName = raw_input(“What is your name? “)
print “Welcome to the program,”, userName
goAgain = 1
while goAgain == 1:
firstNumber = int(raw_input(“Type the first number: “))
secondNumber = int(raw_input(“Type the second number: “))
print firstNumber, “added to”, secondNumber, “equals”,