The
Built by a team of experts to help you unlock your next promotion, reboot your career, or kick off your latest side project.
Get Started Today
You'll be up and running with Python in no time at all.

$34.99
$34.99The Python Workshop
Unlock full, unlimited access and get started right away!
Engineered for Success
Nobody likes going through hundreds of pages of dry theory, or struggling with uninteresting examples that don’t compile. We've got you covered. Any time, any device.

Learn by doing realworld development, supported by detailed stepbystep examples, screencasts and knowledge checks.

Become a verified practitioner, building your credentials by completing exercises, activities and assessment checks.

Manage your learning based on your personal schedule, with content structured to easily let you pause and progress at will.
Learn By Doing
You already know you want to learn Python, and a smarter way to learn Python 3 is to learn by doing.
The Python Workshop focuses on building up your practical skills so that you can work towards building your skills as a data scientist, write scripts that help automate your life and save you time, or even create your own games and desktop applications.
On Your Terms
Build up and reinforce key skills in a way that feels rewarding.
You won't have to sit through any unnecessary theory. If you're short on time you can jump into a single exercise each day or spend an entire weekend learning about scripting. It's your choice.
An Ideal Start
Fastpaced and direct, The Python Workshop is the ideal companion for newcomers.
You'll build and iterate on your code like a software developer, learning along the way. This process means that you'll find that your new skills stick, embedded as best practice. A solid foundation for the years ahead.
Begin Your Journey
A simple, straightforward and painfree way to learn Python.

$34.99
$34.99The Python Workshop
Unlock full, unlimited access and get started right away!
Everything You Need
Every Workshop includes free access to a whole host of bonus downloadable content. No hidden fees or annoying DRM policies. Just pure, topquality content.

Download a textonly version of the entire Workshop. Perfect for those moments where your WiFi connection is a bit spotty. Available as PDF or EPUB, and always DRMfree.

Save any of our stepbystep screencasts directly from our interactive player. You can rest easy knowing that you'll always have a live example to hand.
Get BuildReady
Every Workshop includes a whole host of features that work together to help you get the job done. You’ll be ready to tackle realworld development in no time.
What's Inside
From A to Z, we've got you covered!

Workshop Onboarding
 Welcome to the Python Workshop FREE PREVIEW
 Credits and PDF/EPUB Download
 Installation and Setup FREE PREVIEW

1. Vital Python: Math, Strings, Conditionals, and Loops
 Overview FREE PREVIEW
 Numbers: Operations, Types, and Variables FREE PREVIEW
 Exercise 1: Getting to Know the Order of Operations FREE PREVIEW
 Exercise 1: Getting to Know the Order of Operations FREE PREVIEW
 Exercise 2: Integer and Float Types FREE PREVIEW
 Exercise 2: Integer and Float Types FREE PREVIEW
 Complex Number Types FREE PREVIEW
 Exercise 3: Assigning Variables FREE PREVIEW
 Exercise 3: Assigning Variables FREE PREVIEW
 Changing Types FREE PREVIEW
 Activity 1: Assigning Values to Variables FREE PREVIEW
 Exercise 4: Variable Names
 Exercise 4: Variable Names
 Exercise 5: Multiple Variables in Python
 Exercise 5: Multiple Variables in Python
 Exercise 6: Comments in Python
 Exercise 6: Comments in Python
 Docstrings
 Activity 2: Finding a Solution Using the Pythagorean Theorem in Python
 Strings: Concatenation, Methods, and input()
 Exercise 7: String Error Syntax
 Exercise 7: String Error Syntax
 Escape Sequences with Quotes
 Exercise 8: Displaying Strings
 Exercise 8: Displaying Strings
 Exercise 9: String Concatenation
 Exercise 9: String Concatenation
 String Interpolation
 Exercise 10: String Methods
 Exercise 10: String Methods
 Exercise 11: Types and Casting
 Exercise 11: Types and Casting
 Exercise 12: The input() Function
 Exercise 12: The input() Function
 Activity 3: Using the input() Function to Rate You Day
 String Indexing and Slicing
 Slicing
 Exercise 13: Boolean Variables
 Exercise 13: Boolean Variables
 Logical Operators and Comparison Operators
 Exercise 14: Comparison Operators
 Exercise 14: Comparison Operators
 Exercise 15: Comparing Strings
 Exercise 15: Comparing Strings
 Conditionals
 Exercise 16: Using the if Syntax
 Exercise 16: Using the if Syntax
 Exercise 17: Using the ifelse Syntax
 Exercise 17: Using the ifelse Syntax
 The elif Statement
 Activity 4: Finding the Least Common Multiple (LCM)
 Exercise 18: Calculating Perfect Squares
 Exercise 18: Calculating Perfect Squares
 Exercise 19: Real Estate Oﬀer
 Exercise 19: Real Estate Oﬀer
 Exercise 20: Using for Loops
 Exercise 20: Using for Loops
 The continue Keyword
 Activity 5: Building Conversational Bots Using Python
 Summary
 Quiz 1

2. Python Structures
 Overview
 The Power of Lists
 Exercise 21: Working with Python Lists
 Exercise 21: Working with Python Lists
 Matrices as Nested Lists
 Exercise 22: Using a Nested List to Store Data from a Matrix
 Exercise 22: Using a Nested List to Store Data from a Matrix
 Activity 6: Using a Nested List to Store Employee Data
 Exercise 23: Implementing Matrix Operations Addition and Subtraction
 Exercise 23: Implementing Matrix Operations Addition and Subtraction
 Exercise 24: Implementing Matrix Operations Multiplication
 Exercise 24: Implementing Matrix Operations Multiplication
 Exercise 25: Basic List Operations
 Exercise 25: Basic List Operations
 Exercise 26: Accessing an Item from Shopping List Data
 Exercise 26: Accessing an Item from Shopping List Data
 Exercise 27: Adding Items to Our Shopping List
 Exercise 27: Adding Items to Our Shopping List
 Dictionary Keys and Values
 Exercise 28: Using a Dictionary to Store a Movie Record
 Exercise 28: Using a Dictionary to Store a Movie Record
 Activity 7: Storing Company Employee Table Data Using a List and a Dictionary
 Exercise 29: Using the zip() Method to Manipulate Dictionaries
 Exercise 29: Using the zip() Method to Manipulate Dictionaries
 Exercise 30: Accessing a Dictionary Using Dictionary Methods
 Exercise 30: Accessing a Dictionary Using Dictionary Methods
 Exercise 31: Exploring Tuple Properties in Our Shopping List
 Exercise 31: Exploring Tuple Properties in Our Shopping List
 Exercise 32: Using Sets in Python
 Exercise 32: Using Sets in Python
 Exercise 33: Implementing Set Operations
 Exercise 33: Implementing Set Operations
 Choosing Types
 Summary
 Quiz 2

3. Executing Python: Programs, Algorithms, and Functions
 Overview
 Exercise 34: Writing and Executing Our First Script
 Exercise 34: Writing and Executing our First Script
 Exercise 35: Writing and Importing Our First Module
 Exercise 35: Writing and Importing our First Module
 Shebangs in Ubuntu
 Exercise 36: Adding a Docstring to my_module.py
 Exercise 36: Adding a Docstring to my_module.py
 Imports
 Exercise 37: Finding the System Date
 Exercise 37: Finding the System Date
 The if __name__ == "__main__" Statement
 Activity 8: What's the Time?
 Exercise 38: The Maximum Number
 Exercise 38: The Maximum Number
 Time Complexity
 Sorting Algorithms
 Exercise 39: Using Bubble Sort in Python
 Exercise 39: Using Bubble Sort in Python
 Exercise 40: Linear Search in Python
 Exercise 40: Linear Search in Python
 Exercise 41: Binary Search in Python
 Exercise 41: Binary Search in Python
 Exercise 42: Defining and Calling the Function in Shell
 Exercise 42: Defining and Calling the Function in Shell
 Exercise 43: Defining and Calling the Function in Python Script
 Exercise 43: Defining and Calling the Function in Python Script
 Exercise 44: Importing and Calling the Function from the Shell
 Exercise 44: Importing and Calling the Function from the Shell
 Positional Arguments
 Exercise 45: Defining the Function with Keyword Arguments
 Exercise 45: Defining the Function with Keyword Arguments
 Exercise 46: Defining the Function with Positional and Keyword Arguments
 Exercise 46: Defining the Function with Positional and Keyword Arguments
 Exercise 47: Using **kwargs
 Exercise 47: Using **kwargs
 Activity 9: Formatting Customer Names
 Iterative Functions
 Exercise 48: A Simple Function with a for Loop
 Exercise 48: A Simple Function with a For Loop
 Exercise 49: Exiting the Function During the for Loop
 Exercise 49: Exiting the Function During the For Loop
 Activity 10: The Fibonacci Function with an Iteration
 Recursive Functions
 Exercise 50: Recursive Countdown
 Exercise 50: Recursive Countdown
 Exercise 51: Factorials with Iteration and Recursion
 Exercise 51: Factorials with Iteration and Recursion
 Activity 11: The Fibonacci Function with Recursion
 Exercise 52: Summing Integers
 Exercise 52: Summing Integers
 Exercise 53: Timing Your Code
 Exercise 53: Timing Your Code
 Activity 12: The Fibonacci Function with Dynamic Programming
 Helper Functions
 Exercise 54: Helper Currency Conversion
 Exercise 54: Helper Currency Conversion
 Variable Scope
 Exercise 55: The First Item in a List
 Exercise 55: The First Item in a List
 Exercise 56: Mapping with a Logistic Transform
 Exercise 56: Mapping with a Logistic Transform
 Exercise 57: Using the Filter Lambda
 Exercise 57: Using the Filter Lambda
 Sorting with Lambda Functions
 Summary
 Quiz 3

4. Extending Python, Files, Errors, and Graphs
 Overview
 Exercise 58: Reading a Text File Using Python
 Exercise 58: Reading a Text File Using Python
 Exercise 59: Reading Partial Content from a Text File
 Exercise 59: Reading Partial Content from a Text File
 Writing Files
 Exercise 60: Creating and Writing Content to Files to Record the Date and Time in a Text File
 Exercise 60: Creating and Writing Content to Files to Record the Date and Time in a Text File
 Preparing for Debugging (Defensive Code)
 Exercise 61: Working with Incorrect Parameters to Find the Average Using Assert with Functions
 Exercise 61: Working with Incorrect Parameters to Find the Average Using Assert with Functions
 Plotting Techniques
 Exercise 62: Drawing a Scatter Plot to Study the Data between Ice Cream Sales versus Temperature
 Exercise 62: Drawing a Scatter Plot to Study the Data between Ice Cream Sales versus Temperature
 Exercise 63: Drawing a Line Chart to Find the Growth in Stock Prices
 Exercise 63: Drawing a Line Chart to Find the Growth in Stock Prices
 Exercise 64: Plotting Bar Plots to Grade Students
 Exercise 64: Plotting Bar Plots to Grade Students
 Exercise 65: Creating a Pie Chart to Visualize the Number of Votes in a School
 Exercise 65: Creating a Pie Chart to Visualize the Number of Votes in a School
 Exercise 66: Generating a Heatmap to Visualize the Grades of Students
 Exercise 66: Generating a Heatmap to Visualize the Grades of Students
 Exercise 67: Generating a Density Plot to Visualize the Score of Students
 Exercise 67: Generating a Density Plot to Visualize the Score of Students
 Exercise 68: Creating a Contour Plot
 Exercise 68: Creating a Contour Plot
 Extending Graphs
 Exercise 69: Generating 3D plots to Plot a Sine Wave
 Exercise 69: Generating 3D plots to Plot a Sine Wave
 The Don'ts of Plotting Graphs
 Activity 13: Visualizing the Titanic Dataset Using a Pie Chart and Bar Plots
 Summary
 Quiz 4

5. Constructing Python: Classes and Methods
 Overview
 Classes and Objects
 Exercise 70: Exploring Strings
 Exercise 70: Exploring Strings
 Defining Classes
 Exercise 71: Creating a Pet Class
 Exercise 71: Creating a Pet Class
 The __init__ method
 Exercise 72: Creating a Circle Class
 Exercise 72: Creating a Circle Class
 Keyword Arguments
 Exercise 73: The Country Class with Keyword Arguments
 Exercise 73: The Country Class with Keyword Arguments
 Methods
 Exercise 74: Adding an Instance Method to Our Pet Class
 Exercise 74: Adding an Instance Method to Our Pet Class
 Adding Arguments to Instance Methods
 Exercise 75: Computing the Size of Our Country
 Exercise 75: Computing the Size of Our Country
 The __str__ method
 Exercise 76: Adding an __str__ Method to the Country Class
 Exercise 76: Adding a __str__ Method to the Country Class
 Static Methods
 Exercise 77: Refactoring Instance Methods Using a Static Method
 Exercise 77: Refactoring Instance Methods Using a Static Method
 Class Methods
 Exercise 78: Extending Our Pet Class with Class Methods
 Exercise 78: Extending Our Pet Class with Class Methods
 Properties
 Exercise 79: The Full Name Property
 Exercise 79: The Full Name Property
 The Setter Method
 Exercise 80: Writing a Setter Method
 Exercise 80: Writing a Setter Method
 Validation via the Setter Method
 Inheritance
 Exercise 81: Inheriting from the Person Class
 Exercise 81: Inheriting from the Person Class
 Exercise 82: SubClassing the datetime.date Class
 Exercise 82: SubClassing the datetime.date Class
 Overriding Methods
 Calling the Parent Method with super()
 Exercise 83: Overriding Methods Using super()
 Exercise 83: Overriding Methods Using super()
 Multiple Inheritance
 Exercise 84: Creating a Consultation Appointment System
 Exercise 84: Creating a Consultation Appointment System
 Method Resolution Order
 Activity 14: Creating Classes and Inheriting from a Parent Class
 Summary
 Quiz 5

6. The Standard Library
 Overview
 The Importance of the Standard Library
 Exercise 85: Using the dataclass Module
 Exercise 85: Using the dataclass Module
 Exercise 86: Extending the echo.py Example
 Exercise 86: Extending the echo.py Example
 Dates and Times
 Exercise 87: Comparing datetime across Time Zones
 Exercise 87: Comparing datetime across Time Zones
 Exercise 88: Calculating the Time Delta between Two datetime Objects
 Exercise 88: Calculating the Time Delta between Two datetime Objects
 Exercise 89: Calculating the Unix Epoch Time
 Exercise 89: Calculating the Unix Epoch Time
 Activity 15: Calculating the Time Elapsed to Run a Loop
 Exercise 90: Inspecting the Current Process Information
 Exercise 90: Inspecting the Current Process Information
 Using pathlib
 Exercise 91: Using the glob Pattern to List Files within a Directory
 Exercise 91: Using the glob Pattern to List Files within a Directory
 Using the subprocess Module
 Exercise 92: Customizing Child Processes with env vars
 Exercise 92: Customizing Child Processes with env vars
 Activity 16: Testing Python Code
 Logging
 Exercise 93: Using a logger Object
 Exercise 93: Using a logger Object
 Logging in warning, error, and fatal Categories
 Exercise 94: Configuring the Logging Stack
 Exercise 94: Configuring the Logging Stack
 Exercise 95: Counting Words in a Text Document
 Exercise 95: Counting Words in a Text Document
 defaultdict
 Exercise 96: Refactoring Code with defaultdict
 Exercise 96: Refactoring Code with defaultdict
 ChainMap
 Exercise 97: Using lru_cache to Speed Up Our Code
 Exercise 97: Using lru_cache to Speed Up Our Code
 Partial
 Exercise 98: Creating a print Function That Writes to stderr
 Exercise 98: Creating a print Function That Writes to stderr
 Activity 17: Using partial on class Methods
 Summary
 Quiz 6

7. Becoming Pythonic
 Overview
 Exercise 99: Introducing List Comprehensions
 Exercise 99: Introducing List Comprehensions
 Exercise 100: Using Multiple Input Lists
 Exercise 100: Using Multiple Input Lists
 Activity 18: Building a Chess Tournament
 Exercise 101: Using Set Comprehensions
 Exercise 101: Using Set Comprehensions
 Exercise 102: Using Dictionary Comprehensions
 Exercise 102: Using Dictionary Comprehensions
 Activity 19: Building a Scorecard Using Dictionary Comprehensions and Multiple Lists
 Exercise 103: Adopting a Default Dict
 Exercise 103: Adopting a Default Dict
 Exercise 104: The Simplest Iterator
 Exercise 104: The Simplest Iterator
 Exercise 105: A Custom Iterator
 Exercise 105: A Custom Iterator
 Exercise 106: Controlling the Iteration
 Exercise 106: Controlling the Iteration
 Exercise 107: Using Infinite Sequences and takewhile
 Exercise 107: Using Infinite Sequences and takewhile
 Exercise 108: Turning a Finite Sequence into an Infinite One, and Back Again
 Exercise 108: Turning a Finite Sequence into an Infinite One, and Back Again
 Exercise 109: Generating a Sieve
 Exercise 109: Generating a Sieve
 Activity 20: Using Random Numbers to Find the Value of Pi
 Exercise 110: Matching Text with Regular Expressions
 Exercise 110: Matching Text with Regular Expressions
 Exercise 111: Using Regular Expressions to Replace Text
 Exercise 111: Using Regular Expressions to Replace Text
 Activity 21: Regular Expressions
 Summary
 Quiz 7

8. Software Development
 Overview
 Debugging
 Exercise 112: Debugging a Salary Calculator
 Exercise 112: Debugging a Salary Calculator
 Activity 22: Debugging Sample Python Code for an Application
 Automated Testing
 Exercise 113: Checking Sample Code with Unit Testing
 Exercise 113: Checking Sample Code with Unit Testing
 Writing a Test with pytest
 Creating a PIP Package
 Exercise 114: Creating a Distribution That Includes Multiple Files within a Package
 Exercise 114: Creating a Distribution That Includes Multiple Files within a Package
 Adding More Information to Your Package
 Creating Documentation the Easy Way
 Exercise 115: Documenting a Divisible Code File
 Exercise 115: Documenting a Divisible Code File
 More Complex Documentation
 Source Management
 Exercise 116: Making a Change in CPython Using git
 Exercise 116: Making a Change in CPython Using git
 Summary
 Quiz 8

9. Practical Python: Advanced Topics
 Overview
 Developing Collaboratively
 Exercise 117: Writing Python on GitHub as a Team
 Exercise 117: Writing Python on GitHub as a Team
 Dependency Management
 Exercise 118: Creating and Setting Up a conda Virtual Environment to Install numpy and pandas
 Exercise 118: Creating and Setting Up a conda Virtual Environment to Install numpy and pandas
 Exercise 119: Sharing Environments between a conda Server and Your Local System
 Exercise 119: Sharing Environments between a conda Server and Your Local System
 Deploying Code into Production
 Exercise 120: Dockerizing Your Fizzbuzz Tool
 Exercise 120: Dockerizing Your Fizzbuzz Tool
 Multiprocessing
 Exercise 121: Working with execnet to Execute a Simple Python Squaring
 Exercise 121: Working with execnet to Execute a Simple Python Squaring
 Exercise 122: Using the Multiprocessing Package to Execute a Simple Python Program
 Exercise 122: Using the Multiprocessing Package to Execute a Simple Python Program
 Exercise 123: Using the Threading Package
 Exercise 123: Using the Threading Package
 Parsing CommandLine Arguments in Scripts
 Exercise 124: Introducing argparse to Accept Input from the User
 Exercise 124: Introducing argparse to Accept Input from the User
 Exercise 125: Using Positional Arguments to Accept Source and Destination Inputs from a User
 Exercise 125: Using Positional Arguments to Accept Source and Destination Inputs from a User
 Performance and Profiling
 Exercise 126: Using PyPy to Find the Time to Get a List of Prime Numbers
 Exercise 126: Using PyPy to Find the Time to Get a List of Prime Numbers
 Exercise 127: Adopting Cython to Find the Time Taken to get a List of Prime Numbers
 Exercise 127: Adopting Cython to Find the Time Taken to get a List of Prime Numbers
 Profiling
 Activity 23: Generating a List of Random Numbers in a Python Virtual Environment
 Summary
 Quiz 9

10. Data Analytics with pandas and NumPy
 Overview
 Exercise 128: Converting Lists to NumPy Arrays
 Exercise 128: Converting Lists to NumPy Arrays
 Exercise 129: Calculating the Mean of the Test Score
 Exercise 129: Calculating the Mean of the Test Score
 Exercise 130: Finding the Median from a Collection of Income Data
 Exercise 130: Finding the Median from a Collection of Income Data
 Exercise 131: Finding the Standard Deviation from Income Data
 Exercise 131: Finding the Standard Deviation from Income Data
 Exercise 132: Matrices
 Exercise 132: Matrices
 Computation Time for Large Matrices
 Exercise 133: Creating an Array to Implement NumPy Computations
 Exercise 133: Creating an Array to Implement NumPy Computations
 Exercise 134: Using DataFrames to Manipulate Stored Student testscore Data
 Exercise 134: Using DataFrames to Manipulate Stored Student testscore Data
 Exercise 135: DataFrame Computations with the Student testscore Data
 Exercise 135: DataFrame Computations with the Student testscore Data
 Exercise 136: Computing DataFrames within DataFrames
 Exercise 136: Computing DataFrames within DataFrames
 Exercise 137: Concatenating and Finding the Mean with Null Values for Our testscore Data
 Exercise 137: Concatenating and Finding the Mean with Null Values for Our testscore Data
 Cast Column Types
 Data
 Exercise 138: Reading and Viewing the Boston Housing Dataset
 Exercise 138: Reading and Viewing the Boston Housing Dataset
 Exercise 139: Gaining Data Insights on the Boston Housing Dataset
 Exercise 139: Gaining Data Insights on the Boston Housing Dataset
 Exercise 140: Null Value Operations on the Dataset
 Exercise 140: Null Value Operations on the Dataset
 Replacing Null Values
 Visual Analysis
 Exercise 141: Creating a Histogram Using the Boston Housing Dataset
 Exercise 141: Creating a Histogram Using the Boston Housing Dataset
 Histogram Functions
 Exercise 142: Creating a Scatter Plot for the Boston Housing Dataset
 Exercise 142: Creating a Scatter Plot for the Boston Housing Dataset
 Exercise 143: Correlation Values from the Dataset
 Exercise 143: Correlation Values from the Dataset
 Regression
 Exercise 144: Box Plots
 Exercise 144: Box Plots
 Violin Plots
 Activity 24: Data Analysis to Find the Outliers in Pay versus the Salary Report in the UK Statistics Dataset
 Summary
 Quiz 10

11. Machine Learning
 Overview
 Introduction to Linear Regression
 Exercise 145: Using Linear Regression to Predict the Accuracy of the Median Values of Our Dataset
 Exercise 145: Using Linear Regression to Predict the Accuracy of the Median Values of Our Dataset
 Linear Regression Function
 Exercise 146: Using the cross_val_score Function to Get Accurate Results on the Dataset
 Exercise 146: Using the cross_val_score Function to Get Accurate Results on the Dataset
 Regularization: Ridge and Lasso
 KNearest Neighbors, Decision Trees, and Random Forests
 Exercise 147: Using KNearest Neighbors to Find the Median Value of the Dataset
 Exercise 147: Using KNearest Neighbors to Find the Median Value of the Dataset
 Exercise 148: KNearest Neighbors with GridSearchCV to Find the Optimal Number of Neighbors
 Exercise 148: KNearest Neighbors with GridSearchCV to Find the Optimal Number of Neighbors
 Decision Trees and Random Forests
 Exercise 149: Decision Trees and Random Forests
 Exercise 149: Decision Trees and Random Forests
 Random Forest Hyperparameters
 Exercise 150: Random Forest Tuned to Improve the Prediction on Our Dataset
 Exercise 150: Random Forest Tuned to Improve the Prediction on Our Dataset
 Classification Models
 Exercise 151: Preparing the Pulsar Dataset and Checking for Null Values
 Exercise 151: Preparing the Pulsar Dataset and Checking for Null Values
 Logistic Regression
 Exercise 152: Using Logistic Regression to Predict Data Accuracy
 Exercise 152: Using Logistic Regression to Predict Data Accuracy
 Other Classifiers
 Exercise 153: Using GaussianNB, KneighborsClassifier, DecisionTreeClassifier, and RandomForestClassifier to Predict Accuracy in Our Dataset
 Exercise 153: Using GaussianNB, KneighborsClassifier, DecisionTreeClassifier, and RandomForestClassifier to Predict Accuracy in Our Dataset
 Exercise 154: Finding the Pulsar Percentage from the Dataset
 Exercise 154: Finding the Pulsar Percentage from the Dataset
 Exercise 155: Confusion Matrix and Classification Report for the Pulsar Dataset
 Exercise 155: Confusion Matrix and Classification Report for the Pulsar Dataset
 Boosting Methods
 Exercise 156: Using AdaBoost to Predict the Best Optimal Values
 Exercise 156: Using AdaBoost to Predict the Best Optimal Values
 Activity 25: Using Machine Learning to Predict Customer Return Return Rate Accuracy
 Summary
 Quiz 11

Activity Solutions
 Activity 1: Assigning Values to Variables
 Activity 1: Assigning Values to Variables
 Activity 2: Finding a Solution Using Pythagorean Theorem in Python
 Activity 2: Finding a Solution Using Pythagorean Theorem in Python
 Activity 3: Using the input() Function to Rate You Day
 Activity 3: Using the input() Function to Rate You Day
 Activity 4: Finding the Least Common Multiple (LCM)
 Activity 4: Finding the Least Common Multiple (LCM)
 Activity 5: Building Conversational Bots Using Python
 Activity 5: Building Conversational Bots Using Python
 Activity 6: Using a Nested List to Store Employee Data
 Activity 6: Using a Nested List to Store Employee Data
 Activity 7: Storing Company Employee Table Data Using a List and a Dictionary
 Activity 7: Storing Company Employee Table Data Using a List and a Dictionary
 Activity 8: What's the Time?
 Activity 8: What's the Time?
 Activity 9: Formatting Customer Names
 Activity 9: Formatting Customer Names
 Activity 10: The Fibonacci Function with an Iteration
 Activity 10: The Fibonacci Function with an Iteration
 Activity 11: The Fibonacci Function with Recursion
 Activity 11: The Fibonacci Function with Recursion
 Activity 12: The Fibonacci Function with Dynamic Programming
 Activity 12: The Fibonacci Function with Dynamic Programming
 Activity 13: Visualizing the Titanic Dataset Using a Pie Chart and Bar Plots
 Activity 13: Visualizing the Titanic Dataset Using a Pie Chart and Bar Plots
 Activity 14: Creating Classes and Inheriting from a Parent Class
 Activity 14: Creating Classes and Inheriting from a Parent Class
 Activity 15: Calculating the Time Elapsed to Run a Loop
 Activity 15: Calculating the Time Elapsed to Run a Loop
 Activity 16: Testing Python Code
 Activity 16: Testing Python Code
 Activity 17: Using partial on class Methods
 Activity 17: Using partial on class Methods
 Activity 18: Building a Chess Tournament
 Activity 18: Building a Chess Tournament
 Activity 19: Building a Scorecard Using Dictionary Comprehensions and Multiple Lists
 Activity 19: Building a Scorecard Using Dictionary Comprehensions and Multiple Lists
 Activity 20: Using Random Numbers to Find the Value of Pi
 Activity 20: Using Random Numbers to Find the Value of Pi
 Activity 21: Regular Expressions
 Activity 21: Regular Expressions
 Activity 22: Debugging Sample Python Code for an Application
 Activity 22: Debugging Sample Python Code for an Application
 Activity 23: Generating a List of Random Numbers in a Python Virtual Environment
 Activity 23: Generating a List of Random Numbers in a Python Virtual Environment
 Activity 24: Data Analysis to Find the Outliers in Pay versus the Salary Report in the UK Statistics Dataset
 Activity 24: Data Analysis to Find the Outliers in Pay versus the Salary Report in the UK Statistics Dataset
 Activity 25: Using Machine Learning to Predict Customer Return Return Rate Accuracy
 Activity 25: Using Machine Learning to Predict Customer Return Return Rate Accuracy

PostCourse Assessment
 PostCourse Assessment
Get Verified
Complete The Python Workshop to unlock your secure credential.
We seal a record of your certification on the public Bitcoin blockchain. This verifies your achievement and lets employers authenticate your status with Packt. Our credentials are easy to share, and are ideal for displaying on your LinkedIn profile.
Take A Step Forward
There has never been a better time to start learning Python.

$34.99
$34.99The Python Workshop
Unlock full, unlimited access and get started right away!