programmer looking at his computer while



zyBooks: A Wiley Brand logo.png
Gen Infiniti Academy GIA Logo (words) SQ

Learn Python from one of the most interactive and thorough online web materials available.

With the Programming in Python zyBook, you will learn the essential concepts of Python programming, practice your new skills, and put them to the test with challenge questions – all in one zyBook package.

Research Proven Excellence

Preferred Choice

80% of surveyed students preferred zyBooks over regular textbooks.

Better Learning

Studies show that students learn 118% more with the minimal text model in only one lesson.

Proven Results

On average, zyBook users improved grades up to ⅔ and read 74% more than users of regular textbooks.

What is a zyBook?

In short, zyBooks are interactive, digital textbooks.


By incorporating available technology, zyBooks make learning fun, interactive and engaging – all while drastically reducing the time spent on learning theoretical concepts.

What is a zyLab?

zyLabs are online lab environments that are integrated into their respective zyBooks.

Through zyLabs, you can practice your new skills and obtain immediate feedback and grades. No additional downloading of software required.

Course Details

The Programming in Python zyBook introduces essential Python Programming concepts and practices with minimal text, maximum interactivity.


Module 1: How to use a zyBook

1.1 Basics 1.2 Account and platform basics 1.3 Progression challenge activities 1.4 Programming challenge activities 1.5 Feedback 1.6 zyLab basics

Module 2: Introduction to Python 3

2.1 Programming (general) 2.2 Programming using Python 2.3 Basic input and output 2.4 Errors 2.5 Development environment 2.6 Computers and Programs (general) 2.7 Computer tour 2.8 Language history 2.9 Why whitespace matters 2.10 Python example: Salary calculation 2.11 Additional practice: Output art

Module 3: Variables and Expressions

3.1 Variables and assignments 3.2 Identifiers 3.3 Objects 3.4 Numeric types: Floating-point 3.5 Arithmetic expressions 3.6 Python expressions 3.7 Division and modulo 3.8 Module basics 3.9 Math module 3.10 Representing text 3.11 Additional practice: Number games

Module 4: Types

4.1 String basics 4.2 List basics 4.3 Set basics 4.4 Dictionary basics 4.5 Common data types summary 4.6 Additional practice: Grade calculation 4.7 Type conversions 4.8 Binary numbers 4.9 String formatting 4.10 Additional practice: Health data

Module 7: Functions

7.1 User-defined function basics 7.2 Function parameters 7.3 Returning values from functions 7.4 Dynamic typing 7.5 Reasons for defining functions 7.6 Function stubs 7.7 Functions with branches/loops 7.8 Functions are objects 7.9 Functions: Common errors 7.10 Scope of variables and functions 7.11 Namespaces and scope resolution 7.12 Function arguments 7.13 Keyword arguments and default parameter values 7.14 Arbitrary argument lists 7.15 Multiple function outputs 7.16 Help! Using docstrings to document functions 7.17 Engineering examples

Module 6: Loops

6.1 Loops (general) 6.2 While loops 6.3 More while examples 6.4 Counting 6.5 For loops 6.6 Counting using the range() function 6.7 While vs. for loops 6.8 Nested loops 6.9 Developing programs incrementally 6.10 Break and continue 6.11 Loop else 6.12 Getting both index and value when looping: enumerate() 6.13 Additional practice: Dice statistics

Module 5: Branching

5.1 If-else branches (general) 5.2 If-else statement 5.3 More if-else 5.4 Equality and relational operators 5.5 Boolean operators and expressions 5.6 Membership and identity operators 5.7 Order of evaluation 5.8 Code blocks and indentation 5.9 Conditional expressions 5.10 Additional practice: Tweet decoder

Module 11: Exceptions

11.1 Handling exceptions using try and except 11.2 Multiple exception handlers 11.3 Raising exceptions 11.4 Exceptions with functions 11.5 Using finally to cleanup 11.6 Custom exception types

Module 10: Classes

10.1 Classes: Introduction 10.2 Classes: Grouping data 10.3 Instance methods 10.4 Class and instance object types 10.5 Class example: Seat reservation system 10.6 Class constructors 10.7 Class interfaces 10.8 Class customisation 10.9 More operator overloading: Classes as numeric types 10.10 Memory allocation and garbage collection

Module 9: Lists and Dictionaries

9.1 Lists 9.2 List methods 9.3 Iterating over a list 9.4 List games 9.5 List nesting 9.6 List slicing 9.7 Loops modifying lists 9.8 List comprehensions 9.9 Sorting lists 9.10 Command-line arguments 9.11 Additional practice: Engineering examples 9.12 Dictionaries 9.13 Dictionary methods 9.14 Iterating over a dictionary 9.15 Dictionary nesting

Module 8: Strings

8.1 String slicing 8.2 Advanced string formatting 8.3 String methods 8.4 Splitting and joining strings

Module 13: Files

13.1 Reading files 13.2 Writing files 13.3 Interacting with file systems 13.4 Binary data 13.5 Command-line arguments and files 13.6 The 'with' statement 13.7 Comma separated values files

Module 12: Modules

12.1 Modules 12.2 Finding modules 12.3 Importing specific names from a module 12.4 Executing modules as scripts 12.5 Reloading modules 12.6 Packages 12.7 Standard library

Module 18: Additional Material

18.1 String formatting (old) 18.2 String formatting using dictionaries 18.3 zyBooks built-in programming window

Module 17: Searching and Sorting Algorithms

17.1 Searching and algorithms 17.2 Binary search 17.3 O notation 17.4 Algorithm analysis 17.5 Sorting: Introduction 17.6 Selection sort 17.7 Insertion sort 17.8 Quicksort 17.9 Merge sort

Module 16: Plotting

16.1 Introduction to plotting and visualising data 16.2 Styling plots 16.3 Text and annotations 16.4 Numpy 16.5 Multiple plots

Module 15: Recursion

15.1 Recursive functions 15.2 Recursive algorithm: Search 15.3 Adding output statements for debugging 15.4 Creating a recursive function 15.5 Recursive math functions 15.6 Recursive exploration of all possibilities

Module 14: Inheritance

14.1 Derived classes 14.2 Accessing base class attributes 14.3 Overriding class methods 14.4 Is-a versus has-a relationships 14.5 Mixin classes and multiple inheritance 14.6 Testing your code: The unittest module


Module 2: Introduction to Python 3

2.1 Basics 2.2 Interleaved input / output 2.3 Formatted output: Hello World! 2.4 Formatted output: No parking sign 2.5 Input: Welcome message 2.6 Input: Mad Lib 2.7 Warm up: Hello world 2.8 Warm up: Basic output with variables 2.9 Program: ASCII art

Module 3: Variables and Expressions

3.1 Divide by x 3.2 Driving costs 3.3 Expression for calories burned during workout 3.4 Using math functions 3.5 Musical note frequencies 3.6 Warm up: Variables, input, and type conversion 3.7 Program: Cooking measurement converter 3.8 Program: Food receipt

Module 4: Types

4.1 Input and formatted output: Right-facing arrow 4.2 Phone number breakdown 4.3 Input and formatted output: Caffeine levels 4.4 Input and formatted output: House real estate summary 4.5 Simple statistics 4.6 Warm up: Creating passwords 4.7 Program: Painting a wall

Module 5: Branching

5.1 Remove gray from RGB 5.2 Smallest number 5.3 Interstate highway numbers 5.4 Seasons 5.5 Exact change 5.6 Leap year 5.7 Warm up: Automobile service cost 5.8 Program: Automobile service invoice

Module 6: Loops

6.1 Convert to binary 6.2 Count input length without spaces, periods, or commas 6.3 Password modifier 6.4 Output range with increments of 10 6.5 Print string in reverse 6.6 Countdown until matching digits 6.7 Brute force equation solver 6.8 Smallest and largest numbers in a list 6.9 Output values in a list below a user defined amount 6.10 Adjust values in a list by normalising 6.11 Warm up: Drawing a right triangle 6.12 Program: Drawing a half arrow

Module 7: Functions

7.1 Miles to track laps 7.2 Max magnitude 7.3 Driving costs - functions 7.4 Step counter 7.5 A jiffy 7.6 Leap year - functions 7.7 Convert to binary - functions 7.8 Swapping variables 7.9 Exact change - functions 7.10 Even/odd values in a list 7.11 Output values in a list below a user-defined amount - functions 7.12 Warm up: Text analyser and modifier 7.13 Program: Authoring assistant

Module 8: Strings

8.1 Checker for integer string 8.2 Name format 8.3 Count characters 8.4 Mad Lib - loops 8.5 Palindrome 8.6 Acronyms 8.7 Contains the character 8.8 Warm up: Parsing strings 8.9 Program: Data visualisation

Module 9: Lists and Dictionaries

9.1 Varied amount of input data 9.2 Filter and sort a list 9.3 Middle item 9.4 Elements in a range 9.5 Word frequencies 9.6 Contact list 9.7 Replacement words 9.8 Warm up: People's weights (Lists) 9.9 Program: Soccer team roster (Dictionaries)

Module 10: Classes

10.1 Car value (classes) 10.2 Nutritional information (classes/constructors) 10.3 Artwork label (classes/constructors) 10.4 Triangle area comparison (classes) 10.5 Winning team (classes) 10.6 Warm up: Online shopping cart (Part 1) 10.7 Warm up: Online shopping cart (Part 2)

Module 11: Exceptions

11.1 Fat-burning heart rate 11.2 Exception handling to detect input string vs. integer

Module 12: Modules

12.1 Artwork label (modules) 12.2 Guess the random number 12.3 Quadratic formula

Module 13: Files

13.1 Words in a range (lists) 13.2 Word frequencies (lists) 13.3 Sorting TV Shows (dictionaries and lists)

Module 14: Inheritance

14.1 Pet information (derived classes) 14.2 Instrument information (derived classes) 14.3 Course information (derived classes) 14.4 Book information (overriding member methods)

Module 15: Recursion

15.1 All permutations of names 15.2 Number pattern

Module 17: Searching and Sorting Algorithms

17.1 Descending selection sort with output during execution 17.2 Sorting user IDs


Each purchase comes with...

Practice questions

Highly effective reading materials

1 year access

Interactive figures & tables

Online lab environment (zyLabs)

What Our Students Say

“I really enjoyed zyBooks for use in my Python class. It has surely aided my success in class and helped me build some confidence in my first year at university.”

Isaac C.

Cal State University, Long Beach

Frequently Asked Questions


Will my course fee be subsidised?

No. If you wish to join a course with course fee support*, please check out our Wiley Certified Data Analyst and Unity Certified Associate courses. *Terms & Conditions apply.


I have no prior experience. Will I be able to understand the content taught in the zyBooks?

Yes. Unless otherwise specified, all zyBooks are beginner-friendly.

How much time do I have to spend to complete the course?

It depends on your learning style and speed. We estimate taking about 48 hours to read through the material and complete the interactive quizzes at regular speed. Each zyBook comes with 1 year access, and you should have more than enough time to complete and revise the material with regular reading.

Is there a certification examination?



What is a zyBook?

zyBooks are like interactive, digital textbooks. By incorporating available technology, zyBooks make learning fun, interactive and engaging – all while drastically reducing the time spent on reading long texts.

Why should I buy a zyBook instead of a regular textbook?

zyBooks comprise the same content as a textbook but with minimal text and maximum interactivity. Interactive charts and quizzes are strategically placed, allowing students to cement newly learnt concepts. Some zyBooks also come with zyLabs, which gives immediate feedback when used. This minimises the time spent on grading and rectifying mistakes.

Do all the zyBooks you offer come with zyLabs (the interactive lab environment)?

No. If zyLabs are included, it will be specified in the course page.

What is a zyLab?

zyLabs are online lab environments that are integrated into their respective zyBooks. Through zyLabs, you can practice your new skills and obtain immediate feedback and grades. No additional downloading of software required.