
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore Python fundamentals from variables and data types to functions and OOP, plus memory management, multi-threading, NumPy and Pandas, and database fundamentals.
Explore how Python powers data science and AI with readable syntax, an interpreted language, and libraries like scikit-learn and Keras for machine learning.
Install Python by downloading from python.org, choose Windows default with Python 3.11.x, install and add python.exe to the path automatically, then verify via environment variables.
Learn to install PyCharm, download the community edition, install with path and environment variables, create a new Python project using Python 3.11, and run a main that prints hi.
Set up a PyCharm project, configure the Python interpreter, and create a Python file to run code. Learn the print function, comments with #, and multi-line comments using triple quotes.
Explore Python's basic data types and variables, including numbers, strings, lists, tuples, and dictionaries. Learn how Python creates variables on first assignment and handles data types automatically.
Explore boolean values in Python, from true and false to using the type function to inspect booleans. See how comparisons drive if statements and conditional logic.
Demonstrates how Python strings work as one-dimensional arrays, using zero-based indices, slicing for substrings, and plus-concatenation, then shows the format function for inserting numbers into text.
Explore advanced string slicing in Python, using zero-based indexing, the colon operator, and steps to create substrings, reverse strings, and understand inclusive vs exclusive boundaries.
Discover typecasting in Python by transforming inputs into integers, floats, or strings. Learn how Python's object oriented design uses classes to define data types.
Explore arithmetic, exponentiation, comparison, and assignment operators, including addition, subtraction, multiplication, division, integer division, equals, not equals, less than, greater than, and plus equals.
Illustrate how conditional statements and if statements rely on boolean variables to choose actions in Python, printing outcomes based on true or false values.
Capture user input, cast it to an integer, and apply multiple if, elif, else conditions. Use and and or to test numbers are even and divisible by three or five.
Explore and, or, and not logical operators in Python by evaluating conditions and operands, and reversing boolean values.
Explore loops in Python by using for loops to define start, end, and increment, and compare with while loops; learn range behavior, iteration, and post-loop else execution.
Compare while loops to for loops, use the len function to get string length, increment an index, and use else blocks; learn when to prefer while versus for loops.
Explore nested loops in Python by combining for loops with outer and inner indices, demonstrating three inner iterations for each outer index from 0 to 4.
Explore Python's enumerate to obtain index-value pairs in loops, apply it to lists and data structures, and replace manual index counters with a built-in, string-cast workflow.
Learn to compute Fibonacci numbers in Python with a while loop, starting zero and one. Update A and B to generate successive values and print the first 100 Fibonacci numbers.
Explore functions in Python, defined with def, enabling modularity and code reuse through parameters, *args, **kwargs, keyword arguments, and default values; cover function overriding.
Learn how to define and call functions in Python using def, distinguish parameters from arguments, work with local variables and the format function, and handle empty functions with pass.
Master positional and keyword arguments in Python. Learn how order matters, use the asterisk for arbitrary positional arguments and the double asterisk for arbitrary keyword arguments as dictionaries.
Learn how the return keyword outputs values from a function, such as sums or strings like 'Hello World from a given function', and the upcoming yield operation.
Learn how to return multiple values from a Python function by using tuples, including booleans and integers, with examples using even numbers and index-based retrieval.
Compare the Python yield and return keywords, showing how yield produces a sequence and allows resuming a function, while return terminates execution and ends iteration.
Understand local versus global variables in Python, and see how local variables stay inside a function while global variables and constants allow access throughout the program.
Explore Python's built-in functions, including print, int, type, str, and range; learn to concatenate with plus, convert types, and compare exponentiation using ** versus the pow built-in.
Learn how recursion works, including defining a base case to avoid infinite loops, and how it mirrors iteration through examples like summing the first n integers and computing factorial.
Compare local and global variables by showing how local variables exist only inside a function, while global variables are accessible anywhere, and demonstrate using the global keyword to update globals.
Explain how Python uses the name variable to emulate a main entry point by calling the say hello function when name equals main, contrasting with C, C++, and Java.
Analyze running time and input size to compare constant, linear, and logarithmic complexities with examples like constant-time swaps and binary search, and learn big o, omega, and theta notations.
Explore the fundamentals of data structures in Python, store data efficiently, and perform insertions, removals, and updates to improve running time from n^2 to n log n with data structures.
Discover array data structures, their zero-based indexing, contiguous memory layout, and random access that enables fast constant-time item retrieval; contrast theoretical arrays with Python's implementation and related data structures.
Explore how Python lists implement an array by storing eight-byte references to items rather than values, enabling heterogeneous data types and memory usage; NumPy provides an array with contiguous memory.
Explore array operations: appending items, memory resizing when full, and the memory-time tradeoff; examine end inserts/removals and value-based searches with constant vs linear time implications.
Learn how to create and manipulate Python lists, including mixed types, indexing, iteration, length, and the del operator, with notes on lists versus numpy arrays.
Explore advanced list operations in Python, including append, negative indices, slicing, concatenation with + and extend, copying, removing, popping, reversing, and sorting lists.
Explore list comprehension, a powerful python feature that creates a new list from an existing one by filtering with conditions, such as even numbers and names starting with capital A.
Learn how tuples in Python are immutable sequences, defined with round brackets, support mixed types, and allow indexing and looping, while prohibiting item assignment and append.
Explore mutable versus immutable objects in Python, with lists and dictionaries versus integers and tuples, and see how memory location stays for mutables but changes for immutables.
Discover how doubly linked lists offer head and tail access in Python using the collections queue implementation, supporting append, append left, pop, and pop left with constant time operations.
Explore how hashing enables dictionaries to achieve constant time operations in Python, transforming keys into array indices, handling collisions, and supporting search, insert, update, and delete.
Master dictionaries in Python by storing key value pairs, accessing values by key, iterating over keys, values, and items, and updating or removing entries with dict literals and zip.
Explore sets in Python, structures built on dictionaries that disallow duplicates; learn creation with curly braces or set(), membership testing, adding items, and removal with discard, plus len and union.
Sort items in Python using the built-in sorted function, exploring ascending and descending orders with the reverse and key parameters, and handling lists, tuples, and dictionaries.
Explore object oriented programming in Python, highlighting modularity, extensibility, and reusability, with classes as blueprints and objects created from those classes.
Learn how to define classes in Python, create a person object, access attributes with self, and encapsulate variables and methods using the show name function.
Demonstrates the init constructor in a person class, using self to set name and age, explains parameters versus arguments, positional and keyword arguments, and default values for encapsulation in OOP.
This lecture explains the difference between class variables and instance variables, showing how class variables are shared by all instances while instance variables are per object and independent.
Explore encapsulation in Python, focusing on private variables, single underscores, and name mangling. Recognize that Python has no true private variables; double underscores help obscure access.
Explore inheritance by defining a base user with name and age, then a Facebook user subclass that uses super to initialize and reuse the parent’s show user method.
Explore function overriding in Python inheritance by comparing a parent user class and a child Facebook user class, showing how the overridden show info method runs from the child.
Explore abstraction and polymorphism in object oriented programming, using inheritance, the len function across data types, and an abstract sort interface that supports insertion, selection, merge, and quicksort.
Explore abstraction and polymorphism in Python through an abstract sorting algorithm with concrete subclasses like insertion sort, selection sort, and quicksort, demonstrating dynamic binding at runtime.
Learn how to work with modules in Python by creating files, defining functions like Fibonacci, importing with from and alias, and reusing dictionaries for user preferences and database config.
Override the __str__ function to return a string representation of a person using name and age, enabling Python to print objects and concatenate them with strings.
Override Python's special methods to define how objects compare, using __eq__ for equality and __lt__ or __gt__ for ordering, based on attributes like name or age.
Explore stack memory, which stores local variables and method call frames, and heap memory, which holds objects via references. Learn their size, speed, and issues like fragmentation and garbage collection.
Explore how Python uses the stack for function frames, parameters, and local variables, while objects reside on the heap, with garbage collection reclaiming unreferenced objects.
Python uses reference counting and an automatic garbage collector to remove unused heap objects when no stack references remain, and the delete keyword decreases the reference counter.
Explore how Python treats variables as objects, use type to inspect their types, and verify with isinstance. Learn that objects reside on the heap while references stay on the stack.
Compare values and memory: demonstrate how the double equals operator checks value equality while the is operator checks identity by memory location, using lists and variables.
Learn how call by value copies variables while call by reference may alter originals; in Python, pass by object reference depends on mutability, with ints and strings vs mutable lists.
Learn how to read and write text files in Python using the open function. Iterate lines and even process content character by character, including reading, writing, appending, and closing files.
Open a file, read its content line by line, and count lines with a counter; then split the text to count words with len and print the results.
Open the text file, read line by line, split into words, convert to lower case, and use a list comprehension to count occurrences of a target word.
Create and update text files in Python using open in write mode to create and write, then append mode to add content, using \n for lines and close the file.
Join us and become a Python Programmer, learn one of most requested skills of 2022!
This course is about the fundamental basics of Python programming language. Whether you have never programmed before, already know basic syntax, or want to learn about the advanced features of Python, this course is for you! You can learn about the hardest topics in programming: memory management, multithreading and object-oriented programming. So these are the topics you will learn about:
1.) Basics of Python
installing Python and the integrated development environment (IDE)
basic operations
conditional statements
loops
2.) Functions
what are functions in Python
positional and keyword arguments
return and yield
recursion
3.) Data Structures
how to measure the performance of data structures?
data structures introduction
lists
tuples
dictionaries and sets
4.) Object-Oriented Programing (OOP)
what is the advantages and disadvantages of OOP?
classes and objects
constructors
inheritance
polymorphism
5.) Memory Management
stack memory and heap memory
memory management in Python
6.) Handling Files (I/O)
read files and write files
7.) Exceptions
exceptions and errors
how to deal with exception
try-except-finally blocks
8.) Multithreading and Concurrent Programming
what are threads and processes?
synchronization
locks
deadlocks and livelocks
inter-thread communication
9.) Parallel Programming
multithreading and parallel programming
what is the Global Interpreter Lock (GIL)?
10.) Lambda Expressions
what is functional programming?
why to learn lambda expressions?
anonymous functions
filter
map
reduce
11.) NumPy
real array data structures in Python
lists and arrays comparison
NumPy fundamentals
12.) Matplotlib
how to create plots in Python
charts, line charts and scatter plots
13.) Pandas
why do we need Pandas in data sciences?
Series
DataFrames
apply function (in comparison with loops)
vectorization
14.) Database Management in Python
what are databases and why do we need them?
MySQL and SQL
SQL statements in Python
You will get lifetime access to 110+ lectures plus slides and source codes for the lectures!
This course comes with a 30 day money back guarantee! If you are not satisfied in any way, you'll get your money back.
So what are you waiting for? Learn Python in a way that will advance your career and increase your knowledge, all in a fun and practical way!