Skip to main content
Python for Everyone:
The PreTeXt Interactive Edition
x
Search Results:
No results.
☰
Contents
Index
You!
Choose avatar
▻
✔️
You!
😺
👤
👽
🐶
🐼
🌈
Font family
▻
✔️
Open Sans
AaBbCc 123 PreTeXt
Roboto Serif
AaBbCc 123 PreTeXt
Adjust font
▻
Size
12
Smaller
Larger
Width
100
narrower
wider
Weight
400
thinner
heavier
Letter spacing
0
/200
closer
f a r t h e r
Word spacing
0
/50
smaller gap
larger gap
Line Spacing
135
/100
closer
together
further
apart
Light/dark mode
▻
✔️
default
pastel
twilight
dark
midnight
Reading ruler
▻
✔️
none
underline
L-underline
grey bar
light box
sunrise
sunrise underline
Motion by:
✔️
follow the mouse
up/down arrows - not yet
eye tracking - not yet
<
Prev
^
Up
Next
>
🔍
\( \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \definecolor{fillinmathshade}{gray}{0.9} \newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}} \)
Front Matter
Preface
1
Why Program?
1.1
Why should you learn to write programs?
1.2
Creativity and motivation
1.3
Computer hardware architecture
1.4
Understanding programming
1.5
Words and sentences in Python
1.6
Conversing with Python
1.7
Terminology: Interpreter and compiler
1.8
Writing a program
1.9
What is a program?
1.10
The building blocks of programs
1.11
What could possibly go wrong?
1.12
Debugging
1.13
The learning journey
1.14
Glossary
1.14
Glossary
1.15
Exercises
2
Variables, Expressions, and Statements
2.1
Values and types
2.2
Variables
2.3
Variable names and keywords
2.4
Statements
2.5
Operators and operands
2.6
Expressions
2.7
Order of operations
2.8
Modulus operator
2.9
String operations
2.10
Asking the user for input
2.11
Comments
2.12
Choosing mnemonic variable names
2.13
Debugging
2.14
Glossary
2.14
Glossary
2.15
Multiple Choice Questions
2.16
Mixed-up Code Questions
2.17
Write Code Questions
3
Debugging Interlude 1
3.1
How to be a Successful Programmer
3.2
How to Avoid Debugging
3.3
Beginning tips for Debugging
3.4
Know Your Error Messages
3.4.1
ParseError
3.4.2
TypeError
3.4.3
NameError
3.4.4
ValueError
3.5
Summary
3.6
Exercises
4
Conditional Execution
4.1
Boolean expressions
4.2
Logical operators
4.3
Conditional execution
4.4
Alternative Execution
4.5
Chained conditionals
4.6
Nested conditionals
4.7
Catching exceptions using try and except
4.8
Short-circuit evaluation of logical expressions
4.9
Debugging
4.10
Glossary
4.10
Glossary
4.11
Multiple Choice Questions
4.12
Mixed-up Code Questions
4.13
Write Code Questions
4.14
Group Work - Conditionals and Logic
4.14.1
Comparison Operators
4.14.2
if/else Statements
4.14.3
Boolean Operations
5
Functions
5.1
Function calls
5.2
Built-in functions
5.3
Type conversion functions
5.4
Math functions
5.5
Random numbers
5.6
Adding new functions
5.7
Definitions and uses
5.8
Flow of execution
5.9
Parameters and arguments
5.10
Fruitful functions and void functions
5.11
Why functions?
5.12
Debugging
5.13
Glossary
5.13
Glossary
5.14
Multiple Choice Questions
5.15
Mixed-up Code Questions
5.16
Write Code Questions
5.17
Group Work: Functions
5.17.1
Print and Function Basics
5.17.2
Parts of a Function and Function Calls
5.17.3
Writing Function Calls
5.17.4
Function Order
5.17.5
Special Characters and Keywords
5.18
Functions Multiple Choice Questions
5.19
Functions Mixed-Up Code Questions
5.20
Functions Write Code Questions
5.21
Group Work: Functions and Strings
5.21.1
String Indices
5.21.2
String Slices
5.21.3
Input and Converting Between Strings and Numbers
5.21.4
String Methods
5.22
Functions and Strings Multiple Choice Questions
5.23
Functions and Strings Mixed-Up Code Questions
5.24
Functions and Strings Write Code Questions
5.25
Group Work: Functions and Conditionals
5.25.1
Basic Conditionals and Tests
5.25.2
Logical Operators and Complex Conditionals
5.26
Functions and Conditionals Multiple Choice Questions
5.27
Functions and Conditionals Mixed-Up Code Questions
5.28
Functions and Conditionals Write Code Questions
5.29
Group Work: Functions and Lists
5.29.1
List Indexing
5.29.2
Built-in Functions That Work on Lists
5.29.3
List Methods
5.29.4
Using the Slice Operator
5.30
Functions with Lists Multiple Choice Questions
5.31
Functions and Lists Mixed-Up Code Questions
5.32
Functions and Lists Write Code Questions
5.33
Group Work: Functions with Loops
5.33.1
The For-Each Loop
5.33.2
Range and For
5.33.3
While Loops
5.34
Functions with Loops Multiple Choice Questions
5.35
Functions and Loops Mixed-Up Code Questions
5.36
Functions and Loops Write Code Questions
5.37
Group Work: Functions with Tuples and Dictionaries
5.37.1
Tuples
5.37.2
Tuples are Immutable
5.37.3
Dictionaries
5.38
Functions with Tuples and Dictionaries Multiple Choice Questions
5.39
Functions with Tuples and Dictionaries Mixed-Up Code Questions
5.40
Functions with Tuples and Dictionaries Write Code Questions
6
Loops and Iterations
6.1
Updating variables
6.2
The
while
statement
6.3
Infinite loops
6.4
Finishing iterations with
continue
6.5
Definite loops using
for
6.6
Loop patterns
6.6.1
Counting and summing loops
6.6.2
Maximum and minimum loops
6.7
Debugging
6.8
Glossary
6.8
Glossary
6.9
Multiple Choice Questions
6.10
Mixed-up code Questions
6.11
Write Code Questions
6.12
Group Work - Loops (For, Range, While)
6.12.1
for Statements
6.12.2
The range Function
6.12.3
while Statements
7
Strings
7.1
A string is a sequence
7.2
Getting the length of a string using
len()
7.3
Traversal through a string with a loop
7.4
String slices
7.5
Strings are immutable
7.6
Looping and counting
7.7
The
in
operator
7.8
String comparison
7.9
String methods
7.10
Parsing strings
7.11
Format operator
7.12
Debugging
7.13
Glossary
7.13
Glossary
7.14
Multiple Choice Questions
7.15
Mixed-up Code Questions
7.16
Write-code questions
7.17
Group Work - Strings
7.17.1
Indexing and Slicing
7.17.2
Common String Methods
8
Files
8.1
Persistence
8.2
Opening files
8.3
Text files and lines
8.4
Reading files
8.5
Searching through a file
8.6
Letting the user choose the file name
8.7
Using
try, except,
and
open
8.8
Writing files
8.9
Debugging
8.10
Summary
8.11
Multiple Choice Questions
8.12
Mixed-up Code Questions
8.13
Write Code Questions
8.14
Group Work: Reading from Files
8.14.1
Reading from Files
8.15
Group Work: Reading from CSV Files
8.15.1
Comma-Separated Values (CSV) Files
8.15.2
Comma-Separated Values (CSV) Files with a Header Row
8.16
Group Work: Using a CSV reader/writer
8.16.1
CSV Reader
8.16.2
Reading Comma-Separated Values (CSV) Files with a Header Row
8.16.3
Writing a Comma-Separated Values (CSV) File with CSV Writer
9
Lists
9.1
A list is a sequence
9.2
Lists are mutable
9.3
Traversing a list
9.4
List operations
9.5
List slices
9.6
List methods
9.7
Deleting elements
9.8
Lists and functions
9.9
Lists and strings
9.10
Parsing lines
9.11
Objects and values
9.12
Aliasing
9.13
List arguments
9.14
Debugging
9.15
Glossary
9.15
Glossary
9.16
Multiple Choice Questions
9.17
Mixed-Up Code Questions
9.18
Write Code Questions
9.19
Group Work: Lists
10
Dictionaries
10.1
Dictionaries
10.2
Dictionary as a Set of Counters
10.3
Dictionaries and Files
10.4
Looping and Dictionaries
10.5
Advanced Text Parsing
10.6
Debugging
10.7
Glossary
10.7
Glossary
10.8
Multiple Choice Questions
10.9
Mixed-Up Code Questions
10.10
Write Code Questions
11
Tuples
11.1
Tuples are Immutable
11.2
Comparing Tuples
11.3
Tuple Assignment
11.4
Dictionaries and Tuples
11.5
Multiple Assignment with Dictionaries
11.6
The Most Common Words
11.7
Using Tuples as Keys in Dictionaries
11.8
Sequences: Strings, Lists, and Tuples - Oh My!
11.9
Debugging
11.10
Glossary
11.10
Glossary
11.11
Multiple Choice Questions
11.12
Tuples Mixed-Up Code Questions
11.13
Write Code Questions
12
Regular Expressions
12.1
Regular Expressions
12.2
Character Matching in Regular Expressions
12.3
Extracting Data Using Regular Expressions
12.4
Combining Searching and Extracting
12.5
Escape Character
12.6
Summary
12.7
Bonus section for Unix / Linux users
12.8
Debugging
12.9
Glossary
12.9
Glossary
12.10
Multiple Choice Questions
12.11
Mixed-Up Code Questions
12.12
Write Code Questions
12.13
Group Work: Regular Expressions (Regex)
12.13.1
Regex Methods
12.13.2
Quantifiers
12.13.3
Character Sets
12.13.4
Character Ranges
12.13.5
Character Classes
12.13.6
Escaping Special Characters
12.13.7
Greedy and Non-Greedy Matching
12.14
Group Work: More Regular Expressions (Regex)
12.14.1
Using a logical “or”
12.14.2
Specifying What to Extract - Matching Groups
12.14.3
Specifying What to Extract - Non-Matching Groups
12.14.4
Boundary or Anchor Characters
12.14.5
Negating a Character Set
13
Network Programming
13.1
Networked programs
13.2
HyperText Transfer Protocol - HTTP
13.3
The world's simplest web browser
13.4
Retrieving an image over HTTP
13.5
Retrieving web pages with
urllib
13.6
Reading binary files using
urllib
13.7
Group Work: HTML Basics
13.8
Mixed-Up Code Questions
13.9
Group Work: More HTML
13.9.1
Table Tags
13.9.2
Link Tag
13.9.3
Image Tag
13.9.4
Attributes
13.9.5
Div and Span tags
13.9.6
Using CSS Classes
13.10
Parsing HTML and scraping the web
13.11
Parsing HTML using regular expressions
13.12
Parsing HTML using BeautifulSoup
13.13
Group Work on BeautifulSoup with Requests
13.13.1
Getting a tag from a soup object
13.13.2
Getting text from a tag
13.13.3
Getting data from tags with attributes
13.13.4
How to Find Tags Inside of Tags
13.14
Bonus section for Unix / Linux users
13.15
Glossary
13.15
Glossary
13.16
Multiple Choice Questions
13.17
Mixed-Up Code Questions
13.18
Write Code Exercises
14
Learn Web Scraping!
14.1
Multiple Choice Questions
14.2
Mixed-Up Code Questions
14.3
Write Code Questions
15
Using Web Services
15.1
eXtensible Markup Language - XML
15.2
Parsing XML
15.3
Looping through nodes
15.4
JavaScript Object Notation - JSON
15.5
What is JSON?
15.5.1
Converting a JSON String into a Python Object
15.5.2
Converting a Python object into a JSON string
15.6
Application Programming Interfaces
15.7
Security and API usage
15.8
Glossary
15.8
Glossary
15.9
Multiple Choice Questions
15.10
Mixed-Up Code Questions
15.11
Write Code Questions
15.12
Application 1: Google geocoding web service
15.13
Application 2: Twitter
16
Object-Oriented Programming
16.1
Managing larger programs
16.2
Getting started
16.3
Using objects
16.4
Starting with programs
16.5
Subdividing a problem
16.6
Our first Python object
16.7
Classes as types
16.8
Object lifecycle
16.9
Multiple instances
16.10
Inheritance
16.11
Summary
16.12
Glossary
16.13
Multiple Choice Questions
16.14
Mixed-Up Code Exercises
16.15
Write Code Exercises
16.16
Group Work - Classes, constructors, attributes, and methods
16.16.1
A Book Class
16.16.2
Create More Book Objects
16.16.3
Add a Method to a Class
16.17
Group Work - Working with Multiple Classes
16.17.1
Inheritance
16.17.2
Overriding an Inherited Method
17
Turtles: An Introduction to Objects and Classes
17.1
History of Turtles
17.1.1
A First Turtle Program
17.1.2
What does a left turn of 90 mean?
17.1.3
17.2
Turtle Methods
17.3
Single and Multiple Turtles
17.4
Using Repetition with Turtles
17.5
Teacher Note: Turtle Geometry
17.6
Making Patterns within Patterns
17.7
The Turtle Stamp Procedure
17.8
Creating Functions with Turtles
17.9
Summary
17.9.1
Summary of Turtle Methods
17.9.2
Summary of Screen Methods
17.10
Multiple Choice Questions
17.11
Mixed-Up Code Questions
17.12
Write Code Questions
18
Image and Pixel Classes and Methods
18.1
Using Repetition with Images
18.2
Understanding Image Representation
18.3
A Pattern for Image Processing
18.4
Changing Step 5: Increasing and decreasing color values
18.5
Changing Step 6: Changing where we put the colors
18.6
Changing Step 3: Changing which data we use
18.7
Image Chaper Summary
18.8
Multiple Choice Questions
18.9
Mixed-Up Code Exercises
18.10
Write Code Exercises
19
Classes and Objects - the Basics
19.1
Object-oriented programming
19.2
A change of perspective
19.3
Objects Revisited
19.4
User Defined Classes
19.5
Improving our Constructor
19.6
Adding Other Methods to our Class
19.7
Objects as Arguments and Parameters
19.8
Converting an Object to a String
19.9
Instances as Return Values
19.10
Group Work with Multiple Classes
19.10.1
Multiple Classes
19.10.2
Object-Oriented Analysis and Design
19.10.3
UML Diagrams
19.11
Multiple Classes Practice
19.12
Multiple Choice Questions for Multiple Classes
19.13
Glossary
19.13
Glossary
19.14
Multiple Choice Questions
19.15
Mixed-Up Code Exercises
19.16
Exercises
20
Inheritance
20.1
Pillars of OOP
20.2
Introduction to Inheritance - Point and LabeledPoint
20.3
Call a Parent Method
20.4
Reuse Through Association
20.5
Class Diagrams
20.6
Association vs. Inheritance
20.7
Case Study: Structured Postal Addresses
20.7.1
Storing Postal Addresses
20.7.2
Storing International Addresses
20.7.3
Inheritance Applied
20.7.4
A List of Addresses
20.7.5
Using isinstance
20.8
Unit Tests
20.8.1
Testing your Code
20.8.2
Creating Test Cases
20.8.3
Understanding Unit Tests
20.8.4
Writing Unit Tests
20.9
Group Work on Unit Tests
20.9.1
Assert methods
20.9.2
Writing Unit Tests
20.10
Multiple Choice Questions
20.11
Mixed-Up Code Questions
20.12
Write Code Questions
21
Databases
21.1
What is a database?
21.2
Database concepts
21.3
Database Browser for SQLite
21.4
Creating a database table
21.5
Structured Query Language summary
21.6
More SELECT Keywords
21.7
Spidering Twitter using a database
21.8
Basic data modeling
21.9
Programming with multiple tables
21.9.1
Constraints in database tables
21.9.2
Retrieve and/or insert a record
21.9.3
Storing the friend relationship
21.10
Three kinds of keys
21.11
Using JOIN to retrieve data
21.12
Summary
21.13
Debugging
21.14
Glossary
21.14
Glossary
21.15
Multiple Choice Questions
21.16
Mixed-Up Code Questions
21.17
Write Code Questions
22
Data Visualization
22.1
Visualizing data
22.2
Building a Google map from geocoded data
22.3
Visualizing networks and interconnections
22.4
Visualizing mail data
22.5
Multiple Choice Questions
22.6
Mixed-Up Code Questions
Back Matter
23
Contributions
23.1
Contributor List for Python for Everybody - Interactive
23.2
Contributor List for Python for Everybody
23.3
Contributor List for Python for Informatics
23.4
Preface for “Think Python”
23.4.1
The strange history of “Think Python”
23.4.2
Acknowledgements for “Think Python”
23.5
Contributor List for “Think Python”
24
Copyright Detail for Python for Everybody
Index
Chapter
14
Learn Web Scraping!
The internet is full of information people would like to collect. Copying and pasting it would take forever! In this part of the book, we’ll explore an easier way.
14.1
Multiple Choice Questions
14.2
Mixed-Up Code Questions
14.3
Write Code Questions