Skip to main content

Python for Everyone, 2nd Edition

Python for Everyone, 2nd Edition

Cay S. Horstmann, Rance D. Necaise

ISBN: 978-1-119-18665-6

May 2016

752 pages



Cay Horstmann's Python for Everyone, 2nd Edition provides a comprehensive and approachable introduction to fundamental programming techniques and design skills, and helps students master basic concepts and become competent coders. The inclusion of advanced chapters makes the text suitable for a 2 or 3-term sequence, or as a comprehensive reference to programming in Python. Major rewrites and an updated visual design make this student-friendly text even more engaging. Filled with realistic programming examples, a great quantity and variety of homework assignments, and lab exercises that build student problem-solving abilities, it is no surprise Python for Everyone is the number one text for early objects in the Python market.

Related Resources

Chapter 1: Introduction

1.1 Computer Programs

1.2 The Anatomy of a Computer

1.3 The Python Programming Language

1.4 Becoming Familiar with Your Programming Environment

1.5 Analyzing Your First Program

1.6 Errors

1.7 Problem Solving: Algorithm Design

Chapter 2: Programming with Numbers and Strings

2.1 Variables

2.2 Arithmetic

2.3 Problem Solving: First Do It By Hand

2.4 Strings

2.5 Input and Output

2.6 Graphics: Simple Drawings

Chapter 3: Decisions

3.1 The if Statement

3.2 Relational Operators

3.3 Nested Branches

3.4 Multiple Alternatives

3.5 Problem Solving: Flowcharts

3.6 Problem Solving: Test Cases

3.7 Boolean Variables and Operators

3.8 Analyzing Strings

3.9 Application: Input Validation

Chapter 4: Loops

4.1 The while Loop

4.2 Problem Solving: Hand-Tracing

4.3 Application: Processing Sentinel Values

4.4 Problem Solving: Storyboards

4.5 Common Loop Algorithms

4.6 The for Loop

4.7 Nested Loops

4.8 Processing Strings

4.9 Application: Random Numbers and Simulations

4.10 Graphics: Digital Image Processing

4.11 Problem Solving: Solve a Simpler Problem First

Chapter 5: Functions

5.1 Functions as Black Boxes

5.2 Implementing and Testing Functions

5.3 Parameter Passing

5.4 Return Values

5.5 Functions Without Return Values

5.6 Problem Solving: Reusable Functions

5.7 Problem Solving: Stepwise Refinement

5.8 Variable Scope

5.9 Graphics: Building an Image Processing Toolkit

5.10 Recursive Functions (Optional)

Chapter 6: Lists

6.1 Basic Properties of Lists

6.2 List Operations

6.3 Common List Algorithms

6.4 Using Lists with Functions

6.5 Problem Solving: Adapting Algorithms

6.6 Problem Solving: Discovering Algorithms by Manipulating Physical Objects

6.7 Tables

Chapter 7: Files and Exceptions

7.1 Reading and Writing Text Files

7.2 Text Input and Output

7.3 Command Line Arguments

7.4 Binary Files and Random Access

7.5 Exception Handling

7.6 Application: Handling Input Errors

Chapter 8: Sets and Dictionaries

8.1 Sets

8.2 Dictionaries

8.3 Complex Structures

Chapter 9: Objects and Classes

9.1 Object-Oriented Programming

9.2 Implementing a Simple Class

9.3 Specifying the Public Interface of a Class

9.4 Designing the Data Representation

9.5 Constructors

9.6 Implementing Methods

9.7 Testing a Class

9.8 Problem Solving: Tracing Objects

9.9 Problem Solving: Patterns for Object Data

9.10 Object References

9.11 Application: Writing a Fraction Class

Chapter 10: Inheritance

10.1 Inheritance Hierarchies

10.2 Implementing Subclasses

10.3 Calling the Superclass Constructor

10.4 Overriding Methods

10.5 Polymorphism

10.6 Application: A Geometric Shape Class Hierarchy

Chapter 11: RECURSION

11.1 Triangle Numbers Revisited

11.2 Problem Solving: Thinking Recursively

11.3 Recursive Helper Functions

11.4 The Efficiency of Recursion

11.5 Permutations

11.6 Backtracking

11.7 Mutual Recursion

Chapter 12: Sorting and Searching

12.1 Selection Sort

12.2 Profiling the Selection Sort Algorithm

12.3 Analyzing the Performance of the Selection Sort Algorithm

12.4 Merge Sort

12.5 Analyzing the Merge Sort Algorithm

12.6 Searching

12.7 Problem Solving: Estimating the Running Time of an Algorithm









•Greater emphases on problem solving with practical step-by-step illustrations of techniques that can help students devise and evaluate solutions to programming problems.
• A new visual approach that motivates the reader and eases navigation including photographs, step-by-step figures, syntax boxes, and example tables.
• New exercises from science and business engage students with real world applications of Java in different industries.
• An early introduction to object-oriented programming techniques, beginning in Chapter 2, provides extensive practice with objects and classes before students are asked to write their own classes.
• Horstmann’s clear explanations follow the beginner’s thinking process, providing examples and analogies, and anticipating where they may get confused or make mistakes.
• The Testing Track identifies and emphasizes the test-driven approach to programming.

Cay Horstmann is a renowned author of many successful texts, known for his clear writing style, focus on fundamentals, and effective pedagogy.
Guidance and worked examples help students succeed. Step-by-step guidance builds confidence and provides an outline for the task at hand. “Problem Solving” sections stress the importance of design and planning. “How To” guides help students with common programming tasks. Additional Worked Examples are available online.
Practice makes perfect. This book contains a substantial number of self-check questions at the end of each section. “Practice It” pointers suggest exercises to try after each section. And additional practice opportunities, including code completion questions, guided lab exercises, and skill-oriented multiple-choice questions are available online.
The presentation is highly visual. Photographs present visual analogies that explain the nature and behavior of computer concepts. Syntax boxes and example tables present a variety of typical and special cases in a compact format.