-
Installation
- Plain Python - The Official Python Installation
- Anaconda Python Distribution [Recommended] as it contains most of the required modules
- Intel Distribution - A super set of Anaconda with various optimization for Intel Architecture
-
Syntax
- No semicolons for line separation!!
- No parenthesis for blocks!!!
Indentation
-
Variables and types
- Numeric -
Integers, Long, Float , Complex - Boolean -
True , False - Strings and operations on strings
- Conversion from one type to another -
int(), float() , str() , bool()
- Numeric -
-
Keywords
-
Sequences
- Lists
- Tuples
- Sets
- Dictionaries
-
Control flow
- if elif else
- NO switch!! - either use if elif else OR use dictionary mappings
-
Loops - for , while ; break , continue
-
Functions
-
Files
-
Modules - os , subprocess , random , sys
-
Files - reading and writing
-
Using the with keyword - context managers
-
Operations on dictionaries , looping through contents of a dictionary
-
json - reading and writing json documents
-
Exception Handling -
try except finally raise -
Classes
- Creating a
class - Object creation
__init__method - to initialize attributes- Dunders methods to be uploaded for operator overloading ex :
__str__(Dunders is short form for Double Underscores)
- Creating a
-
datetime module to deal with date,time,datetime objects
-
requests module to make HTTP Requests
-
Connecting to a database and querying - using pyodbc/pypyodbc
-
Creating our own modules and packages.
-
Revisiting functions
- Lambdas
- Functions in python as first class citizens - can be passed , returned as any other objects.
- Decorators - To do some pre-work before a function is called. Using the @ construct for decorating
- Functional programming constructs -
map(),reduce(),filter() and the operator module - Functional Programming With Python
-
Mini project - py_shell - Implementing our own mini shell using the module os
-
Using pip
pip install [pkg_name]
pip --proxy [proxy_url] install [pkg_name]
example :
pip --proxy <proxy_url> install requests -
Using conda
conda install [pkg_name]
- PEP-8 Python Style Guide -
- Doing things the Pythonic way -Idiomatic Python
- Standard Library Functions for Python2.x
- Standard Library Functions for Python3.x
- LearnPython - A good online code playground to learn the language.
- Learn Python the Hard Way
- The Hitchhiker’s Guide to Python! - A fully comprehensive site on most of the things required on the journey to be an awesome Python developer
- Python for you and me - Great content to get started with python development
- Python_syntax_and_semantics
- PEP - Python Enhancement Proposals
- Python Course.eu - Very good collection on basic and advanced topics.
- IntoPython - CPython Code Walkthrough
- 2 vs 3 - Difference between Python 2 and 3
- datetime - Datetime formating
- conda - Conda cheatsheet
- Anandalogy Python Practice book - A good resource to refresh your knowledge.Also has a good content related to functional programming.
- DiveIntoPython
- Call by Reference or value - Neither
- Decorators
- Awesomestats.in - Concise jupyter notebook examples to do data science
- Analytics Vidhya Python Learning Path
- For creating GUI Applications
- Tkinter - The standard module for GUI's
- PyQt - Python bindings to the popular Qt Framework
- Kivy - A cross platform UI framework
- For doing backend web development
- flask
- Django
- CheeryPy
- For web scrapping
- Beautiful Soup
- Scarpy
- Testing frameworks
- unittest
- doctest
- nose
- For Machine Learning and Data Science
- numpy, scipy
- scikit-learn
- pandas
- For visulization
- matplotlib
- bokeh
- seaborn
- For text analysis and NLP
- nltk
- gensim
- pyparsing
-- Umesh N Rao