python-perks
is a repository for Python course notes, examples, and lab exercises targeted to students, professionals, and enthusiasts.
This repository is intended to provide you a quick guide to starting your journey as a python programmer.
You are advised to fork this repository and solve problems as you proceed to different levels while still being able to sync with the new changes in the repository.
NOTE: If you are an absolute beginner in python, please check Notes section first to get started with python.
- Algorithms
- Searching Algorithms
- Sorting Algorithms
- Data Structures
- Design Patterns
- Adapter Pattern
- Builder Pattern
- Command Pattern
- Decorator Pattern
- Factory Pattern
- Observer Pattern
- Singleton Pattern
- Strategy Pattern
-
- Practical Number Solution
- Iteration with Comprehension
- Greatest Common Divisor
- Matrix Multiplication
- Median Calculation
- Reverse digits of an integer
-
- Coin Change Problem
- Fibonacci Series Problem
- Palindrome Partition Problem
- Minimizing the sum of list of integers
- Longest Common Subsequence Problem
(Links will be updated accordingly)
-
- Introduction to Python
- Python Environment Setup, IDE Setup
- Hello World in Python
- Running Python Programs
- comments and documentation
- Single Line Comments
- inline Comments
- Multiline Comments
- Docstrings
- indentation
- Chapter 1 Quiz
-
Variables, basic data type and operations
- Variables, constants, and keywords
- Numeric Data Types
- Strings
- String Formatting
- Basic Operations
- Type Hinting in Python (only for python 3.6 and later)
- Type Conversion / Typecasting
- Chapter 2 Quiz
-
- Introduction to Functions
- Defining a function
- Calling a function
- the
return
statement - the
pass
statement - Local Variables and Global variables
- default arguments
- arguments and keyword arguments
- Recursive Functions
- Lambda functions
- Chapter 6 Quiz
- Introduction to Functions
-
- Introduction to Object-Oriented Programming
- Class
- Class attributes, methods, and the
self
parameter - the Constructor method
- built-in class attributes
- object
- Class methods and Static methods
- Operator Overloading -Encapsulation in python
- Inheritance and Polymorphism
- Parent Class
- Child Class
super()
function- Mixins
- Chapter 7 Quiz
- Introduction to Object-Oriented Programming
-
open()
functionclose()
methodwrite()
methodread()
methodwith
keyword
-
Exceptions and Exception Handling
- Introduction to Exceptions
- Exception Handling in Python
- Standard Errors
try
,except
keywordtry
except
else
finally
keywordraise
keyword
- Custom Exceptions
- Total
The repository has its folder structure as shown in example below:
notes
├── README.md
├── c01_basics
│ ├── Chapter 1 Basics.md
│ ├── README.md
│ ├── code
│ │ ├── c0101_hello_world.py
│ │ └── c0102_comments.py
│ └── quiz
│ ├── README.md
│ └── solution
│ ├── q0101.py
│ └── q0102.py
├── c02_...
├── c03_...
│
If you're directly cloning the repository, I suggest you to solve in the different branch than the
main
branch to avoid conflicts if the course content changes.If you're forking, I suggest you not to make any changes in the
main
branch in your repository too so that you can pull and rebase future changes to yourfork
.
for pulling the future changes you can add new remote
as upstream in your
local repository with the commands below:
# step 1: add the upstream remote as git@github.com:ghimiresdp/python-perks.git
# step 2: pull from the upstream
# step 3: push to the origin
git remote add upstream git@github.com:ghimiresdp/python-perks.git
git pull upstream main
git push origin main