Python's popularity has steadily increased over the years due to its simplicity, readability, and extensive libraries. According to the TIOBE Index, Python consistently ranks among the top programming languages, as it is widely used for web development, data analysis, scientific computing, machine learning, and artificial intelligence, making it a valuable skill in today's job market. Its clean syntax and intuitive nature make it an excellent choice for beginners, while its powerful features and vast ecosystem of libraries cater to the needs of experienced developers.
Our Python developer course is ideal for professionals from all backgrounds, including those just starting out or looking to brush up and expand their existing Python programming skill set. The course starts with an overview of Python basics, ensuring you are prepared as the course progresses to more advanced concepts like Lambda functions, JupyterLab, and pandas.
In this beginner to advanced Python course, you will explore Python's applications, gain advanced sorting techniques for efficient data organization, and master mathematical operations and data manipulation. You will also understand how to perform complex numerical computations with NumPy and write modular, write reusable code with object-oriented programming in Python, and more.
Your Python training concludes with advanced concepts such as artificial intelligence (AI)-assisted coding, which enables developers to enhance productivity and efficiency using tools like ChatGPT and other AI resources. By course completion, you will have the skills and knowledge needed to build various applications, from simple scripts to complex web applications.
Instructor(s):Stephen Withrow
Stephen Withrow brings over four decades of experience in training, development, and consulting across a broad spectrum of technologies, including Python, Java, Web Development, Oracle, C, and C++. His extensive background includes the design and implementation of business-critical solutions on client/server, web, and enterprise platforms. He holds a degree in Computer Science and Physics from Florida State University.
Stephen has provided training for a wide array of organizations, including the Department of Defense, Home Depot, CVS, Bank of New York, Merrill Lynch, IBM, and UPS, delivering high-impact instruction to professionals at every level of technical proficiency.
As a trainer, Stephen is widely recognized for his deep subject matter expertise, engaging teaching style, and ability to translate complex technical topics into clear, practical instruction. Students consistently describe him as patient, approachable, and incredibly knowledgeable, often calling him the best technical instructor they've ever had. He is praised for his real-world examples, kindness, and attentiveness to students' needs.
Stephen creates a positive, encouraging learning environment where participation is welcomed and questions are thoroughly addressed. His ability to adapt to varying experience levels while maintaining a structured and effective course flow sets him apart. Whether teaching beginning HTML or advanced Oracle development, Stephen equips students with the skills, confidence, and insights to apply their knowledge immediately in the workplace.
Requirements:
Hardware Requirements:
- This course can be taken on a PC or a Mac.
- Dual monitors are helpful but not required.
Software Requirements:
- PC: Windows 10 or later.
- Mac: macOS 12 or later.
- Browser: The latest version of Google Chrome or Mozilla Firefox are preferred. Microsoft Edge and Safari are also compatible.
- Python (download and installation instructions are provided in course).
- Adobe Acrobat Reader.
Other:
- Email capabilities and access to a personal email account.
Instructional Material Requirements:
The instructional materials required for this course are included in enrollment and will be available online.
Hide Syllabus
Lesson 1
- Introduction to Python
- Python Basics
- Getting Familiar with the Terminal
- Running Python
- Running a Python File
- Exercise: Hello, world!
- Literals
- Exercise: Exploring Types
- Variables
- Exercise: A Simple Python Script
- Constants and Deleting Variables
- Writing a Python Module
- print() Function
- Collecting User Input
- Exercise: Hello, You!
- Reading from and Writing to Files
- Exercise: Working with Files
- Functions and Modules
- Defining Functions
- Variable Scope
- Global Variables
- Function Parameters
- Exercise: A Function with Parameters
- Returning Values
- Exercise: Parameters with Default Values
- Returning Values
- Importing Modules
- Methods vs. Functions
- Math
- Arithmetic Operators
- Exercise: Floor and Modulus
- Assignment Operators
- Precedence of Operations
- Built-in Math Functions
- The math Module
- The random Module
- Exercise: How Many Pizzas Do We Need?
- Exercise: Dice Rolling
- Python Strings
- Quotation Marks and Special Characters
- String Indexing
- Exercise: Indexing Strings
- Slicing Strings
- Exercise: Slicing Strings
- Concatenation and Repetition
- Exercise: Repetition
- Combining Concatenation and Repetition
- Python Strings are Immutable
- Common String Methods
- String Formatting
- Exercise: Playing with Formatting
- Formatted String Literals (f-strings) (introduced in Python 3.6)
- Built-in String Functions
- Exercise: Outputting Tab-delimited Text
- Iterables: Sequences, Dictionaries, and Sets
- Definitions
- Sequences
- Lists
- Sequences and Random
- Exercise: Remove and Return Random Element
- Tuples
- Ranges
- Converting Sequences to Lists
- Indexing
- Exercise: Simple Rock, Paper, Scissors Game
- Slicing
- Exercise: Slicing Sequences
- min(), max(), and sum()
- Converting between Sequences and Strings
- Unpacking Sequences
- Dictionaries
- The len() Function
- Exercise: Creating a Dictionary from User Input
- Sets
- *args and **kwargs
- Virtual Environments, Packages, and pip
- Exercise: Creating, Activiting, Deactivating, and Deleting a Virtual Environment
- Packages with pip
- Exercise: Working with a Virtual Environment
- Flow Control
- Conditional Statements
- Compound Conditions
- The is and is not Operators
- all() and any() and the Ternary Operator
- In Between
- Loops in Python
- Exercise: All True and Any True
- break and continue
- Looping through Lines in a File
- Exercise: Word Guessing Game
- The else Clause in Loops
- Exercise: for...else
- The enumerate() Function
- Generators
- List Comprehensions
- Exception Handling
- Exception Basics
- Generic Exceptions
- Exercise: Raising Exceptions
- The else and finally Clauses
- Using Exceptions for Flow Control
- Exercise: Running Sum
- Raising Your Own Exceptions
- Python Dates and Times
- Understanding Time
- The time Module
- Time Structures
- Times as Strings
- Time and Formatted Strings
- Pausing Execution with time.sleep()
- The datetime Module
- datetime.datetime Objects
- Exercise: What Color Pants Should I Wear?
- datetime.timedelta Objects
- Exercise: Report on Departure Times
- File Processing
- Opening Files
- Exercise: Finding Text in a File
- Writing to Files
- Exercise: Writing to Files
- Exercise: List Creator
- The os Module
- os.walk()
- The os.path Module
- A Better Way to Open Files
- Exercise: Comparing Lists
- PEP8 and Pylint
- PEP8
- Pylint
- Advanced Python
- Advanced Python Concepts
- Lambda Functions
- Advanced List Comprehensions
- Exercise: Rolling Five Dice
- Collections Module
- Exercise: Creating a defaultdict
- Counters
- Exercise: Creating a Counter
- Mapping and Filtering
- Mutable and Immutable Built-in Objects
- Sorting
- Exercise: Converting list.sort() to sorted(iterable)
- Sorting Sequences of Sequences
- Creating a Dictionary from Two Sequences
- Unpacking Sequences in Function Calls
- Exercise: Converting a String to a datetime.date Object
- Modules and Packages
- Regular Expressions
- Regular Expression Tester
- Regular Expression Syntax
- Python's Handling of Regular Expressions
- Exercise: Green Glass Door
- Working with Data
- Virtual Environment
- Relational Databases
- Passing Parameters
- SQLite
- Exercise: Querying a SQLite Database
- SQLite Database in Memory
- Exercise: Inserting File Data into a Database
- Drivers for Other Databases
- CSV
- Exercise: Finding Data in a CSV File
- Creating a New CSV File
- Exercise: Creating a CSV with DictWriter
- Getting Data from the Web
- Exercise: HTML Scraping
- XML
- JSON
- Exercise: JSON Home Runs
- Testing and Debugging
- Testing for Performance
- Exercise: Comparing Times to Execute
- The unittest Module
- Exercise: Fixing Functions
- Special unittest.TestCase Methods
- Classes and Objects
- Attributes
- Behaviors
- Classes vs. Objects
- Attributes and Methods
- Exercise: Adding a roll() Method to Die
- Private Attributes
- Properties
- Exercise: Properties
- Objects that Track their Own History
- Documenting Classes
- Exercise: Documenting the Die Class
- Inheritance
- Exercise: Extending the Die Class
- Extending a Class Method
- Exercise: Extending the roll() Method
- Static Methods
- Class Attributes and Methods
- Abstract Classes and Methods
- Understanding Decorators
- Python Data Analysis with JupyterLab
- JupyterLab
- Exercise: Creating a Virtual Environment
- Exercise: Getting Started with JupyterLab
- Jupyter Notebook Modes
- Exercise: More Experimenting with Jupyter Notebooks
- Markdown
- Exercise: Playing with Markdown
- Magic Commands
- Exercise: Playing with Magic Commands
- Getting Help
- NumPy
- Exercise: Demonstrating Efficiency of NumPy
- NumPy Arrays
- Exercise: Multiplying Array Elements
- Multi-dimensional Arrays
- Exercise: Retrieving Data from an Array
- More on Arrays
- Using Boolean Arrays to Get New Arrays
- Random Number Generation
- Exploring NumPy Further
- pandas
- Getting Started with pandas
- Introduction to Series
- np.nan
- Accessing Elements in a Series
- Exercise: Retrieving Data from a Series
- Series Alignment
- Exercise: Using Boolean Series to Get New Series
- Comparing One Series with Another
- Element-wise Operations and the apply() Method
- Series: A More Practical Example
- Introduction to DataFrames
- Creating a DataFrame using Existing Series as Rows
- Creating a DataFrame using Existing Series as Columns
- Creating a DataFrame from a CSV
- Exploring a DataFrame
- Exercise: Practice Exploring a DataFrame
- Changing Values
- Getting Rows
- Combining Row and Column Selection
- Boolean Selection
- Pivoting DataFrames
- Be careful using properties!
- Exercise: Series and DataFrames
- Plotting with matplotlib
- Exercise: Plotting a DataFrame
- Other Kinds of Plots
Hide Syllabus