Overview
Teaching: 15 min
Exercises: 10 minQuestions
How can I store data in programs?
Objectives
Write programs that assign scalar values to variables and perform calculations with those values.
Correctly trace value changes in programs that use scalar assignment.
= symbol assigns the value on the right to the name on the left.age
and a name in quotation marks to a variable first_name.age = 42
first_name = 'Ahmed'
__alistairs_real_age have a special meaning
so we won’t do that until we understand the convention.print to display values.print that prints things as text.print(first_name, 'is', age, 'years old')
Ahmed is 42 years old
print automatically puts a single space between items to separate them.print(last_name)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-c1fbb4e96102> in <module>()
----> 1 print(last_name)
NameError: name 'last_name' is not defined
Variables Persist Between Cells
Variables defined in one cell exist in all other cells once executed, so the relative location of cells in the notebook do not matter (i.e., cells lower down can still affect those above). Remember: Notebook cells are just a way to organize a program: as far as Python is concerned, all of the source code is one long set of instructions.
age a few lines ago.age = age + 3
print('Age in three years:', age)
Age in three years: 45
first = 1
second = 5 * first
first = 2
print('first is', first, 'and second is', second)
first is 2 and second is 5
first when doing the multiplication,
creates a new value, and assigns it to second.second does not remember where it came from.Name and name are different variables.flabadab = 42
ewr_422_yY = 'Ahmed'
print(ewr_422_yY, 'is', flabadab, 'years old')
# This sentence isn't executed by Python.
adjustment = 0.5 # Neither is this - anything after '#' is ignored.
print(adjustments)
0.5
Swapping Values
Draw a table showing the values of the variables in this program after each statement is executed. In simple terms, what do the last three lines of this program do?
x = 1.0 y = 3.0 swap = x x = y y = swapSolution
swap = x # x->1.0 y->3.0 swap->1.0 x = y # x->3.0 y->3.0 swap->1.0 y = swap # x->3.0 y->1.0 swap->1.0These three lines exchange the values in
xandyusing theswapvariable for temporary storage. This is a fairly common programming idiom.
Predicting Values
What is the final value of
positionin the program below? (Try to predict the value without running the program, then check your prediction.)initial = "left" position = initial initial = "right"
Choosing a Name
Which is a better variable name,
m,min, orminutes? Why? Hint: think about which code you would rather inherit from someone who is leaving the lab:
ts = m * 60 + stot_sec = min * 60 + sectotal_seconds = minutes * 60 + secondsSolution
minutesis better becauseminmight mean something like “minimum” (and actually does in Python, but we haven’t seen that yet).
What Did You Have For Dinner Last Night?
In a new notebook cell create variables that contain relevant data regarding the “what, where, and when” of last night’s dinner, then include those variables in a
print()command as part of a full sentence.Paste the output into the EitherPad, so we can all vicariously enjoy your meal.
Key Points
Use variables to store values.
Use
Variables persist between cells.
Variables must be created before they are used.
Variables can be used in calculations.
Use an index to get a single character from a string.
Use a slice to get a substring.
Use the built-in function
lento find the length of a string.Python is case-sensitive.
Use meaningful variable names.
Use comments to add documentation to programs.