STUDENT
SOLUTION
S MANUAL
to accompany
An Introduction to Programming Using
Python
by David I. Schneider
SOLUTION MANUAL
BESTSOLUTIONS11
, Student Solutions Manual (Page 2 of 99)
CONTENTS
Comments 3
CHAPTER 2 Core Objects, Variables, Input, and Output
2.1 Numbers 9
2.2 Strings 10
2.3 Output 13
2.4 Lists, Tuples, and Files – an Introduction 14
CHAPTER 3 Structures that Control Flow
3.1 Relational and Logical Operators 15
3.2 Decision Structures 16
3.3 The while Loop 19
3.4 The for Loop 22
CHAPTER 4 Functions
4.1 Functions, Part 1 28
4.2 Functions, Part 2 32
CHAPTER 5 Processing Data
5.1 Processing Data, Part 1 37
5.2 Processing Data, Part 2 41
5.3 Processing Data with Dictionaries 47
CHAPTER 6 Miscellaneous Topics
6.1 Exception Handling 51
6.2 Selecting Random Values 52
6.3 Turtle Graphics 55
6.4 Recursion 64
CHAPTER 7 Object-Oriented Programming
7.1 Classes and Objects 66
7.2 Inheritance 71
CHAPTER 8 Graphical User Interface
8.1 Widgets 74
8.2 The Grid Geometry Manager 78
8.3 Writing GUI Programs 82
BESTSOLUTIONS12
, Student Solutions Manual (Page 3 of 99)
Comments
CHAPTER 1
Section 1.1: The most important questions in Section 1.1 are as follows:
Question: Many programming languages, including Python, use a zero-based numbering system.
What is a zero- based numbering system? (See page 3.)
Question: What conventions are used to show keystrokes? (See page 4.)
Question: How can the programs for the examples in this textbook be obtained? (See page 4.)
Question: Where will new programs be saved? (See page 4.)
Section 1.3: Flowcharts appear primarily in CHAPTER 3. At that time, you may want to review the material on
flowcharts on page 7.
Section 1.4
Figure 1.30 on page 20 illustrates a most important aspect of Python programs; the fact that
indentation and blocks are heavily used to delineate different parts of programs.
Of the items in the menu in Fig. 1.31 on page 20, I rely heavily on the Recent Files command. I use it
to get to the folder I am currently using to store and retrieve my programs. I often open any program
in or near the proper folder. Then the Open or New File commands will default to that folder.
On page 34 you are asked to run a program that was downloaded from the Pearson website for the
book. All of the programs appearing in Examples can be downloaded from that website. There is
never any need for you to manually type in the code for a program in this textbook. The website also
contains all the data files needed for the exercises. These programs and data files are contained in the
subfolders “Ch2”, “Ch3”, “Ch4”, and so on. Each program has a name of the form
chapte number-Section number–example number. For instance, the program in CHAPTER 3, Section 1,
Example 2 is contained in the folder Ch3 and has the name 3-1-2.py.
CHAPTER 2
Section 2.1
The first example containing a program is Example 1 on page 24. To open this program in Python,
click on Open in the IDLE File menu, navigate to the subfolder Ch2 of the Programs folder, and
double-click on 2-1-1.py. The next time you click on Open in the IDLE File menu, Python will use
the folder Programs/Ch2 as the default folder. That is, you will not have to navigate to that folder;
its programs will automatically appear.
A number whose absolute value is less than 1 can be written with or without a 0 preceding its
decimal point. Both representations are treated the same. That is, 0.8 and .8 are the same number.
Python displays such numbers with a 0 preceding the decimal point.
Mathematical comment: 𝑥 ** .5 has the same value as √𝑥.
Comment 4 shows an unexpected feature of the round function. Most people expect the number
2.5 to be rounded to 3, not 2.
A common error is to forget to include the closing parenthesis at the end of a print function.
BESTSOLUTIONS13
, Student Solutions Manual (Page 4 of 99)
Section 2.2
We favor using double-quotes to delimit strings since strings sometimes contain contractions; that is,
words such as it’s and can’t.
Correction: On page 41, the value of int(-4.8) should be -4.
Section 2.3
Mastering the format method (discussed on pages 52 and 53) is a bit challenging. However, once
you have become comfortable using it, you will appreciate its power. It is the modern way of
formatting output will be the preferred method of formatting output in this book.
The ljust, rjust, and center methods discussed on page 51 are much less important than the format
method. They are presented to introduce the concept of a field.
Section 2.4
The material in the first three Sections of this CHAPTER is fundamental and usually is introduced early
in computer programming books. I made the atypical decision to introduce lists and tuples earlier (in
Section 2.4) than other Python textbooks and also to show how to fill them with the contents of a file.
So doing allows us to solve interesting and non-trivial programs early in the book. For now, just think
of the three-line method for filling a list with the contents of a text file as boilerplate. Later you will
understand exactly how the three-line method carries out its mission. With many Python/Operating
System combinations, the three lines can be replaced with a single line of the following form:
listName = [line.rstrip() for line in open("Data.txt", 'r')]
We have learned four ways to fill a list. Let's illustrate the ways by filling a list with the names of the
first three presidents.
(a) pres = ["Washington", "Jefferson", "Adams"]
(b) infile = open("Pres.txt", 'r')
pres = [line.rstrip() for line in infile] infile.close
where the text file Pres.txt is located in the same folder as the program and has three lines with
each line containing the name of a president.
(c) strPres = "Washington,Jefferson,Adams" pres =
strPres.split(",")
(d) pres = []
pres.append("Washington") pres.append("Jefferson")
pres.append("Adams")
Lists are incredibly useful structures and are used extensively throughout this book. The join method
(as used in Example 3) provides an excellent way to display the items in a list.
The main idea to take away from the discussion of mutable objects is that numbers, strings, and
tuples are handled differently in memory than are lists. This fact will rarely affect the programs that
you write. However, it will give you some insights into what is going on in the background. In
CHAPTERs 4 and 5, the concept of mutability becomes important. Mutable objects can have their values
changed when passed to functions. Also, mutable objects cannot be used as keys in dictionaries.
BESTSOLUTIONS14