
Maximize your learning in python3 by watching videos at 1080p, using headphones, and adjusting playback; engage in Q&A and hands-on coding with quizzes and assignments, and take notes.
Beginner Python course introduces installation, data types, variables, operators, control flow, functions, OOP, and advanced concepts, then explores web development with Flask and data analysis with pandas.
Explore why Python is extremely readable and gives developers productivity, powered by a vast package ecosystem and the Zen of Python, with emphasis on readability and pep 8.
Explore how high-level languages are converted to executable code by a compiler. See how Python uses bytecode and a Python virtual machine, with CPython behind the scenes and the py_cache directory.
Python 3.8 installation using Anaconda on a Windows 10 machine
Install Python on macOS using Anaconda to streamline package management and virtual environments. Create and activate environments, verify Python versions, install Jupyter Notebook, and launch notebooks.
Survey the Jupyter notebook interface, create and rename notebooks, switch between code and markdown cells, and run cells with shift+enter. Learn to add comments, headers, and manage outputs and kernel.
Explore Python's common data types, including integers, floats, complex numbers, strings, booleans, lists, tuples, ranges, sets, frozensets, dictionaries, and bytes, with emphasis on ordering, indexing, and mutability.
Explore integers and floating point numbers in Python 3, performing addition, subtraction, multiplication, division, floor division, modulo, and exponentiation, with notes on precision and integer versus float results.
Explore complex numbers in Python, representing real and imaginary parts, perform arithmetic with parentheses and precedence, and learn type conversions using int, float, and complex.
Explore Python's arithmetic precedence rules, learning how multiplication, exponentiation, division, and modulo operations outrank addition and subtraction, and how parentheses control evaluation order.
Understand how true and false represent Python booleans, how == and comparisons yield them, and how the bool function evaluates non-zero numbers, non-empty strings, and None, with zero as false.
Explore how variables name objects, and how a variable can point to different objects over time, with memory addresses, namespaces, and module imports like math and pi.
Master Python variable naming rules, dynamic typing, and basic assignment concepts including id, type, is for identity, and converting input strings to numbers.
Explore strings in Python as immutable Unicode sequences, created with single, double, or triple quotes, including multiline strings, escape sequences, and printing with newline and tab controls.
Learn how to control Python printing with the end parameter to avoid automatic newlines, employ explicit flushing, and use escape sequences and double backslashes for quotes and backslashes.
Explore Python strings as immutable objects, access characters via zero-based and negative indexing, handle out-of-range errors, and understand memory references and garbage collection when reassigning strings.
Master Python string manipulation by using lower, upper, strip, replace, split, and length to transform text, manage whitespace, and handle case sensitivity.
Explore Python string operations, including substring checks with in and not in, counting occurrences, and slicing with start and end indices and negative indices.
Learn how to concatenate strings in Python, why the plus operator cannot combine strings with numbers, and how to use f-strings with expressions and precision formatting to build dynamic messages.
Write a Python program that reads a string, extracts its first and last characters, concatenates them into a new string, and prints the result.
Read two inputs, name and age, and print a hello greeting with the name on a new line, ending with you are eight years old, in a Python 3 assignment.
Demonstrate formatting a program output using double quotes to avoid escape characters and using a backslash for the newline.
Learn to uppercase the first character of a string in Python using slicing, while keeping the rest unchanged, and understand that strings are immutable.
Take the third character of a string and append it to the end 100 times, using Python examples.
Examine how Python evaluates expressions, including the is None check, and why strings with spaces fail an alphanumeric test.
Explore the difference between Python's string methods title and capitalize, showing how title capitalizes every word while capitalize only capitalizes the first character.
Extract the middle five characters from any odd-length string longer than seven by computing the center as (length - 1)/2 and taking two characters on each side.
Explore Python 3 sequence data types, starting with tuples, as you learn how ordered collections enable efficient storage and manipulation of large data sets.
Understand that tuples in python are ordered, immutable sequences accessed by index, created with commas (parentheses optional), supporting mixed types and single-element trailing comma requirements.
Explore tuple operations in Python, including packing and unpacking, membership tests with in, and slicing with positive and negative indices, as you learn immutability and duplicates.
Explore Python tuple operations, including concatenation, slicing, counting, and indexing, and swap values in one line while noting immutability. Compare Python's readable for loops to C++, highlighting simplicity.
Explore Python lists, their mutability, and how to create, index, and slice them, including positive and negative indices, type checks, and handling out-of-range errors.
Master Python list operations by using append, insert, remove, pop, and clear, while understanding index-based deletions, slicing, and the difference between deleting the list object and clearing its contents.
Learn python list operations by concatenating lists with the plus operator, the extend method, and for loop. Explore reversing and sorting, including sort with reverse and key-based sorting by length.
Explore nested lists, mutable objects, and how copy() creates a separate list to avoid unintended mutations, paving the way for list comprehensions.
Learn how Python sets provide an unordered, duplicate-free collection by using the set constructor or curly braces; duplicates are removed automatically, and elements must be hashable.
Learn how to manipulate sets with add, update, remove, and discard; perform union, intersection, and difference, copy and clear sets, and explore frozen sets and immutability.
Learn to create and use Python dictionaries as unordered, mutable key–value stores, created with curly braces or dict(), accessed by key or get(), and iterated by keys, values, or items.
Master Python dictionaries by adding and updating key-value pairs with square brackets and the update method, check keys with in, get length with len, and remove with pop or del.
Explore Python data types, including integers, floats, lists, tuples, dictionaries, sets, and strings, and learn arithmetic, precedence, naming, string slicing, and type conversion as the basis for the course.
Explore how to convert between data types in Python, using int and float, handling strings, lists, tuples, sets, and dictionaries, with JSON for dictionaries and noting conversion limits and errors.
Explore Python operators including arithmetic, assignment, comparison, logical, identity, membership, and bitwise, with practical examples and short-form shorthand like += and **, plus notes on type compatibility.
Explore Python's logical operators and, or, not, and how they combine conditional statements; note not is evaluated first and parentheses can change outcomes.
Explore identity and membership operators in Python, including is, is not, in, and not in, along with bitwise operations using &, |, ~, <<, >> and the bin() function.
Welcome to the brand new course in Python 3: Beginner to Pro.
When I started creating this course, I had one objective in mind:
"Teach like I wish I had been taught".
I remember the questions/doubts/hesitations I had when I was learning Python and I have tried very hard to address them in this course. This is why there are many many quizzes and code assignments/problems to solve in this course. No one learns to swim or ride a bicycle by attending lectures on swimming or biking and so it is with coding. You have to write the code, make mistakes, solve those mistakes and repeat. That is the only way to learn.
A strong foundation is necessary for any new endeavor and if it seems that the course is a bit slow in the beginning, it is a deliberate choice to ensure that students have the requisite knowledge to proceed to the more challenging portions.
Student feedback is a very important to me. It allows me to change portions of the course if necessary. Please don't hesitate to ask pertinent questions and I will answer them ASAP.
Some of the topics:
Data types, variables, operators.
Conversions between Data types
Operators: Arithmetic, Assignment, Comparison
Operators: Logical, Identity, Membership, Bitwise
for loops, while loops and if-else branching
Functions: Parameters, arguments, return values
Functions: Positional and Keyword Argument
Functions: Default Values for parameters
Functions: Variable positional and Keyword arguments
Functions: Local and Global Scope of variables
Functions: Enumerate, Map, Filter, Reduce, Zip, Lambda
Functions: Closures and Decorators
Functions: List and Dictionary comprehensions
Modules and Packages
Built-in modules: os, sys, random, datetime, logging, math
try-catch error handling
Unit tests
File handling: Text, CSV and JSON
Regular Expressions (regex)
Object Oriented Programming: Classes, Instances
OOP: Class and Instance attributes, class and instance methods
OOP: Instance creation step-by-step and the concept of self
OOP: Instance Properties and attribute validation
OOP: Class Inheritance and inherited attributes and methods
OOP: The concept of super
OOP: Method Resolution Order(MRO) for multi-level and multiple inheritance
Web: Using simple HTTP methods via the requests module
Web: Sending and receiving SMS messages using Twilio
Web: Setting up a web server using Flask micro-framework
Web: Dynamic HTML websites using Jinja2 templates
Web: Connecting to a SQL database
Web: Using Bootstrap4 in the website
Web: Putting it all together to create a frontend and a backend.
Data Analysis: Basics and Numpy
Data Analysis: Numpy nD arrays and characteristics
Data Analysis: Pandas dataframes
Data Analysis: Dataframe manipulations, groupby and conditional extraction
Data Analysis: Visualization of data using matplotlib and pandas
Data Analysis: Visualization of data using Seaborn.
There are ~80 quiz questions and ~35 programming exercises with the solutions in this course.