Now you can print things with print and you can do math. The next step is
to learn about variables. In programming a variable is nothing more than a
name for something so you can use the name rather than the something as you
code. Programmers use these variable names to make their code read more like
English, and because they have lousy memories. If they didn't use good names
for things in their software, they'd get lost when they tried to read their
If you get stuck with this exercise, remember the tricks you have been taught
so far of finding differences and focusing on details:
- Write a comment above each line explaining to yourself what it does in English.
- Read your .py file backwards.
- Read your .py file out loud saying even the characters.
cars = 100
space_in_a_car = 4.0
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / cars_driven
print "There are", cars, "cars available."
print "There are only", drivers, "drivers available."
print "There will be", cars_not_driven, "empty cars today."
print "We can transport", carpool_capacity, "people today."
print "We have", passengers, "to carpool today."
print "We need to put about", average_passengers_per_car, "in each car."
The _ in space_in_a_car is called an underscore character. Find out how to type it
if you do not already know. We use this character a lot to put an imaginary space between
words in variable names.
What You Should See
$ python ex4.py
There are 100 cars available.
There are only 30 drivers available.
There will be 70 empty cars today.
We can transport 120.0 people today.
We have 90 to carpool today.
We need to put about 3 in each car.
When I wrote this program the first time I had a mistake, and python told me
about it like this:
Traceback (most recent call last):
File "ex4.py", line 8, in <module>
average_passengers_per_car = car_pool_capacity / passenger
NameError: name 'car_pool_capacity' is not defined
Explain this error in your own words. Make sure you use line numbers and
Here's more extra credit:
- I used 4.0 for space_in_a_car, but is that necessary? What happens if it's
- Remember that 4.0 is a "floating point" number. Find out what that means.
- Write comments above each of the variable assignments.
- Make sure you know what = is called (equals) and that it's making names for things.
- Remember _ is an underscore character.
- Try running python as a calculator like you did before and use variable names
to do your calculations. Popular variable names are also i, x, and j.
Common Student Questions
- What is the difference between = (single-equal) and == (double-equal)?
- The = (single-equal) assigns the value on the right to a variable
on the left. The == (double-equal) tests if two things have the
same value, and you'll learn about this in exercise 27.
- Can we write x=100 instead of x = 100?
- You can, but it's bad form. You should add space around operators like
this so that it's easier to read.
- How can I print without spaces between words in print?
- You do it like this: print "Hey %s there." % "you". You will do more
of this soon.
- What do you mean by "read the file backwards"?
- Very simple. Imagine you have a file with 16 lines of code in it.
Start at line 16, and compare it to my file at line 16. Then do
it again for 15, and so on until you've read the whole file backwards.
- Why did you use 4.0 for space?
- It is mostly so you can then find out what a floating point number
is and ask this questions. See the extra credit.