Select the drop-down blocks below to find out more.
Free Online Training Events
Free Technical Resources
PLEASE NOTE: This is a ONLINE SELF-PACED training.
Why Learn Python? Watch the video now!
Python is a general purpose programming language that was designed to be compact, easy to use, easy to extend, and which has a large standard library and a very active development community. As well as being a general purpose programming language, Python is widely used as a scripting language, a glue language, for data science and machine learning, for Automated Test Equipment (ATE) control and data handling, and for software test.
Essential Python is intended for professionals working in the electronic systems hardware and embedded software development flows. Essential Python is for people who need to learn Python quickly to get a specific job done. It focusses on the most commonly used features of the Python language and teaches you all you need to know to start using Python properly and effectively.
Hands-on exercises and quizzes comprise approximately 50% of learning time and are carefully designed to reinforce learning.
Select the drop-down blocks below to find out more.
Essential Python is a hands-on programming course aimed at software, hardware, and support engineers who need to use Python for:
This course assumes you already know how to write computer programs.
If you require any of these precursor training options, please contact the Doulos team to discuss what will best suit your needs, or complete an online enquiry.
Doulos training materials are renowned for being the most comprehensive and user friendly available. Their style, content and coverage is unique in the EDA training world, and has made them sought after resources in their own right. Fees include:
Introduction
About Python • The Python World • Which version? • Python Implementations • Jupyter Notebook • The Python Shell • Running Python Programs from a File • The Python Command Line • IDLE • The Zen of Python
Language Basics
Numbers • Strings • Type Conversions • Built-in Functions • String Index • String Slice • String Methods • Find and Replace • Splitting Strings • Simple Formatting
Control Statements
Comments • if Statements • Comparison and Boolean Operators • Conditional Expression • Operators • for Statements • break • continue • while Statements • assert Statements • Functions • global Variables • nonlocal Variables • Lines and Continuation • IDLE
Lists, Tuples, and Dictionaries
Lists • Length, Concatenate, Repeat • Append, Insert, Pop, Extend, Remove • Index • Loops and Lists • Sorting Lists • List Comparison • Tuple• Dictionaries • Sets
Formatting
Formatting Strings • Field Width, Justification, Padding • Number Base, Comma, Sign • Floating Point
Files and Exceptions
Reading Standard Input • Writing to a File • Writing Files using Print • Reading from a File • Variations • Readline ("C-style") • Exceptions • Context Manager
Classes
Classes and Objects • Classes and Methods • Constructors • Adding Data Attributes to an Object • Class Variables and Instance Variables • Class vs Object vs Function vs Method • The LEGB Scope Rule • Documentation Strings
Inheritance
Inheritance • Overriding Methods • Overriding the Constructor • Virtual Method Calls • Multiple Inheritance • Testing Class Relationships • Tying Variables to a Class • Duck Typing
Copying Objects
Copying Instance Objects • Copying Lists • Assigning to a Slice • Shallow Copying
Magic Methods
Defining Magic Methods • int and round • str and repr • Some Useful Magic Methods
Iterators and Generators
Sequence, Iterator, Iterable • Iterable Unpacking • Generators • List Comprehensions • Generator Expressions • lambda • map • filter, enumerate • zip • join • Dictionary Comprehensions
Exploring Functions
Default and Keyword Arguments • Argument Lists • None • Type Hints • Functions as Objects • Higher-Order Functions • Decorator Pattern • A Useful Decorator • Closures
Modules
import • from ... import • __name__ • Running Modules from the Command Line • Packages • The Python Package Index • pip
The Standard Library
math • random • statistics • datetime • time • timeit • os • os.path • os.environ • shutil • glob • sys • subprocess
Regular Expressions
match • search • findall • Filter the Output from Another Program • sub • Basic Regular Expression Syntax
Argparse
Positional Arguments • Usage and Help • Option Arguments • Options with and without Values • Options with Optional Values • nargs • Description, Epilog, Help • Prefix, Choices, Required
Virtual Environments
Tools for Distribution and Installation • pyenv • pyenv - Multiple Versions • venv • Creating and Activating Virtual Environments • Sandboxing • pip freeze and Cloning • Version Pinning • pipenv • Running pipenv • Some pipenv commands • pipenv and Python Versions • --skip-lock and --ignore-pipfile • PyInstaller • PyInstaller Options • Further Tools
Test-Driven Development
What is TDD? • The TDD Process • The Four-Phase Test Pattern • Fakes and Test Doubles • pytest Architecture • A Simple Test • A Failing Test • Test Discovery • Tests in Classes • Testing Exceptions • skip and xfail • Test Summary • Running in a Temporary Directory • monkeypatch • Methods of monkeypatch • User-defined Test Fixture • pytest Good Practice
Extending Python with C
Extending Python • Numba • C Foreign Function Interface • Building and Running with cffi • Compiling from C Header and Source Files • Building from a Shared Object File • Pointers and Structures • ffi.new • To Distribute cffi with PyInstaller • Cython Language • Primes in Python • Primes in Numba • Primes in C • cffi Biuld Script • Primes in Cython • Compile with Cython • Check the Results • Compare the Speed
NumPy
The NumPy Array • A 2-D Array • More Dimensions • Initializing Arrays (1) • Initializing Arrays (2) • Arithmetic Series • Random Arrays • Copying the Shape of an Existing Array • reshape • Adding Dimensions • ravel • transpose • Sorting • Reduction Functions • Plotting a Function with Matplotlib
NumPy Broadcasting and Indexing
Elementwise Operations • Elementwise Compare • Other Elementwise Operations • Combining Array and Scalars • Broadcasting • Row and Column Vectors • Dot Product • Vectorizing a Function • Array-of-Indices • Indexing with Array-of-Booleans • Grids • Concatenate and Stack • Split • Tile
Matplotlib
Plotting with Lines, Colors and Markers • Text and Legend • Matplotlib APIs • Subplots • Subplots versus Figures in pyplot API • Log Axes • Types of Plot • Plotting a Histogram • Plotting an Array as a Grid • Scatterplot • Numpy meshgrid • 3-D Surface Plot • Other Python Plotting Packages • Plotting with Pandas • Plotting with Seaborn • Seaborn Pairplot
Pandas
Pandas • Pandas Data Structures • Pandas Series • Pandas DataFrame • index and columns • Basic Indexing - Series • Basic Indexing - DataFrame • loc and iloc • Slicing and Dicing • Copying and Concatenation • Querying a Dataframe • Adding Column to a Dataframe • reset_index, set_index, and reindex • Importing and Exporting Dataframes • Time Series and Alignment • Examining a Dataframe • Basic Statistics • Histogram • Plotting • Handling Undefined Data • Data Transformations • SQL-like Merge • Groupby • Hierarchical Index • Hierarchical Row and Column Indexes • Stack • Unstack • Pivot Table
Python 2 versus Python 3
Python 2 versus Python 3
All trademarks are acknowledged as the property of their respective holders.
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request