(eBook PDF) Introduction to Programming Using Python An 1 download
(eBook PDF) Introduction to Programming Using Python An 1 download
https://ebookluna.com/product/ebook-pdf-introduction-to-
programming-using-python-an-1/
https://ebookluna.com/product/python-programming-an-introduction-to-
computer-science-3rd-edition-by-john-zelle-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-introduction-to-programming-
using-visual-basic-10th-edition/
ebookluna.com
https://ebookluna.com/download/an-introduction-to-parallel-
programming-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-java-an-introduction-to-
problem-solving-and-programming-7th-edition/
ebookluna.com
(eBook PDF) Java: An Introduction to Problem Solving and
Programming 8th Edition
https://ebookluna.com/product/ebook-pdf-java-an-introduction-to-
problem-solving-and-programming-8th-edition/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-python-programming-in-
context-3rd-edition/
ebookluna.com
https://ebookluna.com/product/python-programming-in-context-3rd-
edition-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-microsoft-visual-c-an-
introduction-to-object-oriented-programming-7th-edition/
ebookluna.com
https://ebookluna.com/download/problem-solving-and-python-programming-
ebook-pdf/
ebookluna.com
Contents
Preface xi
Acknowledgments xv
Programming Projects 74
Appendices
Appendix A ASCII Values 349
Appendix B Reserved Words 351
Appendix C Installing Python and IDLE 353
Answers 355
Index 405
This page intentionally left blank
Preface
S ince its introduction in the 1990s, Python has become one of the most widely used
programming languages in the software industry. Also, students learning their first
programming language find Python the ideal tool to understand the development of
computer programs.
My objectives when writing this text were as follows:
1. To develop focused chapters. Rather than covering many topics superficially,
I concentrate on important subjects and cover them thoroughly.
2. To use examples and exercises with which students can relate, appreciate, and feel
comfortable. I frequently use real data. Examples do not have so many embel-
lishments that students are distracted from the programming techniques
illustrated.
3. To produce compactly written text that students will find both readable and informa-
tive. The main points of each topic are discussed first and then the peripheral
details are presented as comments.
4. To teach good programming practices that are in step with modern programming
methodology. Problem-solving techniques, structured programming, and
object-oriented programming are thoroughly discussed.
5. To provide insights into the major applications of computers.
xi
xii ◆ Preface
or are best appreciated after the student has thought about them. The reader should
seriously attempt the practice problems and study their solutions before moving on
to the exercises.
Comments. Extensions and fine points of new topics are deferred to the “Comments”
portion at the end of each section so that they will not interfere with the flow of the
presentation.
Key Terms and Concepts. In Chapters 2 through 8, the key terms and concepts (along
with examples) are summarized at the end of the chapter.
Guide to Application Topics. This section provides an index of programs that deal
with various topics including Business, Economics, Mathematics, and Sports.
VideoNotes. Twenty-four VideoNotes are available at www.pearsonhighered.com/
schneider. VideoNotes are Pearson’s visual tool designed for teaching key program-
ming concepts and techniques. VideoNote icons are placed in the margin of the text
book to notify the reader when a topic is discussed in a video. Also, a Guide to Video
Notes summarizing the different videos throughout the text is included.
Solution Manuals. The Student Solutions Manual contains the answer to every odd-
numbered exercise (not including programming projects). The Instructor Solutions
Manual contains the answer to every exercise and programming project. Both solu-
tion manuals are in pdf format and can be downloaded from the Publisher’s website.
Source Code and Data Files. The programs for all examples and the data files needed
for the exercises can be downloaded from the Publisher’s website.
Instructor Resources
The following protected instructor resource materials are available on the Publisher’s
website at www.pearsonhighered.com/schneider. For username and password infor-
mation, please contact your local Pearson representative.
Preface ◆ xiii
Student Resources
Access to the Premium website and VideoNotes tutorials is located at www
.pearsonhighered.com/schneider. Students must use the access card located in the
front of the book to register and access the online material. If there is no access
card in the front of this textbook, students can purchase access by going to www
.pearsonhighered.com/schneider and selecting “purchase access to premium con-
tent.” Instructors must register on the site to access the material.
The following content is available through the Premium website:
• VideoNotes
• Student Solutions Manual
• Programs for examples (Data files needed for the exercises are included in the
Programs folder.)
This page intentionally left blank
Acknowledgments
xv
This page intentionally left blank
1
An Introduction to
Computing and Problem
Solving
1.1 An Introduction to Computing and Python 2
1
2 ◆ Chapter 1 An Introduction to Computing and Problem Solving
Question: Why did you decide to use Python as the programming language?
Answer: Many people consider Python to be the best language to teach beginners how to
program. We agree. Also, Python is being used by major software companies. Python is
powerful, easy to write and read, easy to download and install, and it runs under Windows,
Mac, and Linux operating systems.
Question: This book uses the editor IDLE to create programs. How did IDLE get its name?
Answer: Idle stands for Integrated DeveLopment Environment. (Some people think the
name was chosen as a tribute to Eric Idle, a founding member of the Monty Python group.)
The IDLE editor has many features (such as color coding and formatting assistance) that
help the programmer.
Question: What are the meanings of the terms “programmer” and “user”?
Answer: A programmer (also called a developer) is a person who solves problems by writing
programs on a computer. After analyzing the problem and developing a plan for solving it,
the programmer writes and tests the program that instructs the computer how to carry out
the plan. The program might be run many times, either by the programmer or by others.
A user is any person who runs the program. While working through this text, you will
function both as a programmer and as a user.
1.1 An Introduction to Computing and Python ◆ 3
Question: Are there certain characteristics that all programs have in common?
Answer: Most programs do three things: take in data, manipulate data, and produce results.
These operations are referred to as input, processing, and output. The input data might be
held in the program, reside on a disk, or be provided by the user in response to requests
made by the computer while the program is running. The processing of the input data
occurs inside the computer and can take from a fraction of a second to many hours. The
output data are displayed on a monitor, printed on a printer, or recorded on a disk. As a
simple example, consider a program that computes sales tax. An item of input data is the
cost of the thing purchased. The processing consists of multiplying the cost by the sales
tax rate. The output data is the resulting product, the amount of sales tax to be paid.
Question: What are the meanings of the terms “hardware” and “software”?
Answer: Hardware refers to the physical components of the computer, including all periph-
erals, the central processing unit (CPU), disk drives, and all mechanical and electrical
devices. Programs are referred to as software.
Question: Many programming languages, including Python, use a zero-based numbering system.
What is a zero-based numbering system?
Answer: In a zero-based numbering system, numbering begins with zero instead of one. For
example, in the word “code”, “c” would be the zeroth letter, “o” would be the first letter,
and so on.
presses the Enter (or return) key, the names of the presidents who have that first name are
displayed.
Question: How can the programs for the examples in this textbook be obtained?
Answer: See the preface for information on how to download the programs from the
Pearson website.
is used to process the distance traveled and the time elapsed in order to determine the
speed. That is,
1.2 Program Development Cycle ◆ 5
We determine what we want as output, get the needed input, and process the input to
produce the desired output.
In the chapters that follow, we discuss how to write programs to carry out the preceding
operations. But first we look at the general process of writing programs.
■■ Program Planning
A baking recipe provides a good example of a plan. The ingredients and the amounts are
determined by what is to be baked. That is, the output determines the input and the process-
ing. The recipe, or plan, reduces the number of mistakes you might make if you tried to
bake with no plan at all. Although it’s difficult to imagine an architect building a bridge or
a factory without a detailed plan, many programmers (particularly students in their first
programming course) try to write programs without first making a careful plan. The more
complicated the problem, the more complex the plan must be. You will spend much less
time working on a program if you devise a carefully thought out step-by-step plan and test
it before actually writing the program.
Many programmers plan their programs using a sequence of steps, referred to as the
Software Development Life Cycle. The following s tep-by-step process will enable you to use
your time efficiently and help you design e rror-free programs that produce the desired output.
typed, Python points out certain kinds of program errors. Other kinds of errors are
detected by Python when the program is executed—however, many errors due to typ-
ing mistakes, flaws in the algorithm, or incorrect use of the Python language rules, can
be uncovered and corrected only by careful detective work. An example of such an
error would be using addition when multiplication was the proper operation.
5. Complete the documentation: Organize all the material that describes the program.
Documentation is intended to allow another person, or the programmer at a later
date, to understand the program. Internal documentation (comments) consists of
statements in the program that are not executed, but point out the purposes of vari-
ous parts of the program. Documentation might also consist of a detailed descrip-
tion of what the program does and how to use it (for instance, what type of input is
expected). For commercial programs, documentation includes an instruction manual
and on-line help. Other types of documentation are the flowchart, pseudocode, and
hierarchy chart that were used to construct the program. Although documentation
is listed as the last step in the program development cycle, it should take place as the
program is being coded.
The preceding algorithm takes the number of sheets (Sheets) as input, processes the
data, and produces the number of stamps needed (Stamps) as output. We can test the algo-
rithm for a letter with 16 sheets of paper.
Of the program design tools available, three popular ones are the following:
Flowcharts: Graphically depict the logical steps to carry out a task and show how the
steps relate to each other.
Pseudocode: Uses English-like phrases with some Python terms to outline the task.
Hierarchy charts: Show how the different parts of a program relate to each other.
■■ Flowcharts
A flowchart consists of special geometric symbols connected by arrows. Within each sym-
bol is a phrase presenting the activity at that step. The shape of the symbol indicates the type
of operation that is to occur. For instance, the parallelogram denotes input or output. The
arrows connecting the symbols, called flowlines, show the progression in which the steps
take place. Flowcharts should “flow” from the top of the page to the bottom. Although the
symbols used in flowcharts are standardized, no standards exist for the amount of detail
required within each symbol.
+PRWV1WVRWV 7UGFHQTKPRWVCPFQWVRWVQRGTCVKQPU
6JGFCVCVQDGKPRWVQTQWVRWVKUFGUETKDGF
KPVJGRCTCNNGNQITCO
2TQEGUUKPI 7UGFHQTCTKVJOGVKECPFFCVCOCPKRWNCVKQP
QRGTCVKQPU6JGKPUVTWEVKQPUCTGNKUVGF
KPUKFGVJGTGEVCPING
&GEKUKQP 7UGFHQTCP[NQIKEQTEQORCTKUQPQRGTCVKQPU
7PNKMGVJGKPRWVQWVRWVCPFRTQEGUUKPI
U[ODQNUYJKEJJCXGQPGGPVT[CPFQPGGZKV
ƃQYNKPGVJGFGEKUKQPU[ODQNJCUQPGGPVT[
CPFVYQGZKVRCVJU6JGRCVJEJQUGPFGRGPFU
QPYJGVJGTVJGCPUYGTVQCSWGUVKQPKUp[GUq
QTpPQq
%QPPGEVQT 7UGFVQLQKPFKHHGTGPVƃQYNKPGU
#PPQVCVKQP 7UGFVQRTQXKFGCFFKVKQPCNKPHQTOCVKQP
CDQWVCPQVJGTƃQYEJCTVU[ODQN
The table of the flowchart symbols has been adopted by the American National Stand-
ards Institute (ANSI). Figure 1.4 shows the flowchart for the postage-stamp problem.
The main advantage of using a flowchart to plan a task is that it provides a graphical
representation of the task, thereby making the logic easier to follow. We can clearly see
every step and how each is connected to the next. The major disadvantage is that when a
program is very large, the flowcharts may continue for many pages, making them difficult
to follow and modify.
■■ Pseudocode
Pseudocode is an abbreviated plain English version of actual computer code (hence, pseu-
docode). The geometric symbols used in flowcharts are replaced by E nglish-like statements
that outline the process. As a result, pseudocode looks more like computer code than does
8 ◆ Chapter 1 An Introduction to Computing and Problem Solving
5VCTV
1DVCKP
KPRWV
5JGGVU
5GV5VCORU=
RTQEGUUKPI
5JGGVU
4QWPF5VCORU
WRVQCYJQNG RTQEGUUKPI
PWODGT
&KURNC[
QWVRWV
5VCORU
'PF
a flowchart. Pseudocode allows the programmer to focus on the steps required to solve a
problem rather than on how to use the computer language. The programmer can describe
the algorithm in P
ython-like form without being restricted by the rules of Python. When
the pseudocode is completed, it can be easily translated into the Python language.
The pseudocode for the postage-stamp problem is shown in Fig. 1.5.
Pseudocode has several advantages. It is compact and probably will not extend for many
pages as flowcharts commonly do. Also, the pseudocode looks like the code to be written
and so is preferred by many programmers.
■■ Hierarchy Chart
The last programming tool we’ll discuss is the hierarchy chart, which shows the overall
program structure. Hierarchy charts are also called structure charts, HIPO (Hierarchy plus
Input-Process-Output) charts, top-down charts, or VTOC (Visual Table of Contents) charts.
All these names refer to planning diagrams that are similar to a company’s organization chart.
Other documents randomly have
different content
puoluetukea ja asianajajaa. Ja noin hän hoitaa asiaanne! Sill'aikaa
kun meidät on sanottu irti työstä, kun me seisomme tässä
katottomina, kodittomina, ihmisoikeutemme marttyyreina, antautuu
hän tuolla hekumaan sortajiemme kanssa, suutelee niitä, jotka meitä
ruoskivat… Vieläkö te voitte uskoa häneen! Herra hän on! Ja hänestä
tulee samanlainen herra kuin kaikki entiset! Tehkäämme rajat
selviksi! Ainoastaan rehellinen työläinen voi työläisen asiaa ajaa. Heti
kun ihminen muuttuu herraksi, rupeaa hän elämään porvarin tavoin,
rupeaa viihtymään lihapatojen äärellä ja eräänä kauniina päivänä
kavaltaa hän meidät kaikki, pettää tärkeällä hetkellä jonkun
himoruokansa vuoksi…
— Sitä pahempi.
— Sellaisia sinä säälit, mutta minä sanon, että niitä juuri ei saa
sääliä. Tietysti he taipuvat meidän puoleemme lopulta, kun heidän
sinisissä suonissaan ei ole enää edes niin paljon verta, että kirpun
koipi kastuisi. Vaistomaisesti he meitä lähestyvät ja liehittelevät, jotta
me lainaisimme heille jotakin meidän terveestä voimastamme.
Kuolemanpelko ajaa heitä meitä kohti. Mutta heidän ja juuri heidän
pitää kuoleman, sillä muuten emme koskaan saa nähdä uutta maata
ja uutta taivasta. Me emme saa avata syliä heille, me emme saa
tehdä sovintoa heidän kanssaan! Kuka niin on opettanut! Sinä, sinä
itse! Ja miten sinä elät…
— Kuule, Salli, jos et sinä koskaan ennen ole tehnyt vääryyttä, niin
nyt teet minua kohtaan.
— Viivytkö kauan?
— En tiedä vielä.
Salli hävisi puitten väliin. Mikko ei estellyt enempää. Hän tiesi sen
turhaksi.
Salli oli sellainen luonne, jonka täytyi saada mennä omia teitään.
*****
Mikolle tuli äkkiä paha olla siitä, että hän oli jättänyt Sallin omiin
hoteisiinsa. Hän oli liian hyvä menemään kaiken maailman tietä…
Nyt hän oli vielä lapsellinen ja kova, mutta elämä oli kyllä pehmittävä
hänet. Hänessä oli ainetta, jota kesti ja kannatti sorvata.
No, hän seuraisi hänen jälkiään. Löytäisi hänet jos ei muualta niin
joistakin puoluelistan nimiluetteloista. Salli oli siksi tunnettu ja
käytetty kyky. Ellei… Mikolle tuli hätä taas. Sallikin voi muuttua,
kadottaa uskonsa koko asiaan, hukkua nimettömänä, jäljettömänä…
Salli oli oikeassa: hänessä piili kavaltajan siemen. Ilman Sallia olisi
se jo aikaisemmin tullut näkyviin. Ja jos hän saisikin hänet vielä
takaisin, ei hän enää koskaan saisi häntä opetuslapsekseen,
henkiseksi tyttärekseen, hän ei enää itse uskonut itseensä, ei voisi
koskaan uskoa, vaikka Sallikin kannustaisi. Mitä varten hän siis
tahtoisi omistaa Sallin? Rakastajattareksi? Ei. Pikemmin sitten
Verna…
Niin, onhan minulla tosiaan nyt rooli. Mutta tuskinpa olisin ottanut
sitä vastaan, ellei vanha teatterivereni minua niin äärettömästi
vaivaisi. Yksityis-iltamassa, taiteenharrastajien kanssa, aivan kuin
ennen muinoin ensi alotteitani ottaessani! Mutta sittenkin siinä on
taas työtä, elämää. Ja minä olen siitä oikein iloinen. Olen tullut
lapseksi uudestaan kaikesta päättäen… Niin vanhaksi ja köyhäksi
olen käynyt…
*****
*****
Sellainen oli Liina. Ja sellaisia kujeita saattoi hän tehdä, kun hän
huomasi, että oli kysymyksessä vain turhanpäiväinen, itsekkyydestä
johtunut hetken oikku, naisillekin, joiden asiaa hän muuten ajoi ja
valvoi jos jonkinlaisissa lakivalmistelukunnissa.
Olin ajatuksissani tullut Liinan ovelle. Siinä vasta muistin, että oli
par'aikaa tuomari Varjangon hautajaiset ja siis hyvin vähän
luultavaa, että Liina olisi kotona. En tosin tiennyt, kuinka läheltä Liina
oli tuntenut Varjankoa, mutta luultavasti ainakin sen verran, että hän
ei voisi olla poissa hautajaisista.
— Tunsin kyllä.
— Oikein hyvinkö?
— Oikein hyvin.
— Ei.
— Tässä se on. Näet, että puhun totta. Kuka sitä uskoisi minusta!
— Varjangon tapasin senjälkeen vasta kymmenen vuotta
myöhemmin. Hän oli silloin jo naimisissa ja minä olin ylioppilas. Jätin
nimittäin myös samana syksynä vielä synnyinseutuni. Isäni tyrannius
inhoitti minua liiaksi ja Varjangon sanat ja kuva olivat myös liiaksi
syöpyneet mieleeni jäädäkseen seurauksetta. Sitäpaitsi veti minua
vastustamaton halu luku-uralle.