2. What is Python?
❏ Multi-purpose (Web, GUI, Scripting, etc.)
❏ Object Oriented
❏ Interpreted
❏ Both strongly typed and dynamically typed
❏ Focus on readability and productivity
3. Features
❏ Batteries Included
❏ Everything is an Object
❏ Interactive Shell
❏ Strong Introspection
❏ Cross Platform
❏ CPython, Jython, IronPython, PyPy
4. Releases
❏ Created in 1989 by Guido Van Rossum
❏ Python 1.0 released in 1994
❏ Python 2.0 released in 2000
❏ Python 3.0 released in 2008
❏ Python 2.7 is the recommended version
❏ 3.0 adoption will take a few years
6. Python among other programming
languages (benchmark)
❏ https://en.wikipedia.org/wiki/List_of_programm
ing_languages_by_type
❏ https://attractivechaos.github.io/plb/
❏ http://www.bioinformatics.org/benchmark/resu
lts.html
❏ https://github.com/kostya/benchmarks
7. ❏ End-users just don’t care: 0.001 vs. 0.01
seconds no matter; horizontal scalability used
❏ More productive: more concise and expressive language and
requires less time, effort, and lines of code to perform the same operations
❏ Execution Speed does not matter as much as
Business Speed
❏ Rich set of standard libraries and frameworks
❏ Large community (packages, Q/A, discussions)
Despite being slow, why is Python still
popular?
13. When use and not use Python?
Use
❏ Execution speed does
not matter
❏ Everyone is new to
programming
❏ Readability is more
important
Not use
❏ Speed-intensive
applications including
games that require
high-performance
❏ OS or system-level
applications (e.g.,
memory manipulation)
14. How to run a Python program
❏ Using embedded interpreter in IDE/Notebook
❏ Using stand-alone interpreter
❏ Using the interactive shell
15. How to write a Python program
❏ IDE: Eclipse + PyDev, Visual Studio, PyCharm,
Spyder, Thonny
❏ Code editor: Sublime Text, Atom, GNU Emacs,
Vi / Vim / Nano, Visual Studio Code, ...
❏ Notebook: Jupyter, Zeppelin
16. How to write a Python program
❏ Use IDE: write a complex program,
collaboration in a team, many
dependencies/libraries/binaries
❏ Use code editor: write a simple program
❏ Notebook: interactive, reporting-like
deliverable
17. Most popular Python IDE/Code Editor
https://insights.stackoverflow.com/survey/201
9#development-environments-and-tools
18. Python package installer (pip)
❏ pip is the recommended tool to install python package from
python package public repos (such as public PyPI - and its
mirrors) and private repos
❏ pip can install from either Source Distributions (sdist) or
wheels, but if both are present on PyPI, pip will prefer a
compatible wheel (pre-built).
19. Python public packages (category) [1/2]
❏ Admin Panels
❏ Algorithms and Design Patterns
❏ Audio
❏ Authentication
❏ Build Tools
❏ Built-in Classes Enhancement
❏ Caching
❏ ChatOps Tools
❏ CMS
❏ Code Analysis
❏ Command-line Interface Development
❏ Command-line Tools
❏ Compatibility
❏ Computer Vision
❏ Concurrency and Parallelism
❏ Configuration
❏ Cryptography
❏ Data Analysis
❏ Data Validation
❏ Data Visualization
❏ Database
❏ Database Drivers
❏ Date and Time
❏ Debugging Tools
❏ Deep Learning
❏ DevOps Tools
❏ Distributed Computing
❏ Distribution
❏ Documentation
❏ Downloader
❏ E-commerce
❏ Editor Plugins and IDEs
❏ Email
❏ Environment Management
❏ Files
❏ Foreign Function Interface
❏ Forms
❏ Functional Programming
❏ Game Development
❏ Geolocation
❏ GUI Development
❏ Hardware
❏ HTML Manipulation
❏ HTTP Clients
❏ Image Processing
❏ Implementations
❏ Interactive Interpreter
❏ Internationalization
❏ Job Scheduler
❏ Logging
❏ Machine Learning
Total: 63595 packages
20. Python public packages (category) [2/2]
❏ Miscellaneous
❏ Natural Language Processing
❏ Network Virtualization
❏ Networking
❏ News Feed
❏ ORM
❏ Package Management
❏ Package Repositories
❏ Permissions
❏ Processes
❏ Queue
❏ Recommender Systems
❏ RESTful API
❏ Robotics
❏ RPC Servers
❏ Science
❏ Search
❏ Serialization
❏ Serverless Frameworks
❏ Specific Formats Processing
❏ Static Site Generator
❏ Tagging
❏ Template Engine
❏ Testing
❏ Text Processing
❏ Third-party APIs
❏ URL Manipulation
❏ Video
❏ Web Asset Management
❏ Web Content Extracting
❏ Web Crawling
❏ Web Frameworks
❏ WebSocket
❏ WSGI Servers
Total: 63595 packages
https://github.com/vinta/awesome-python
21. Python public package popularity
https://stackoverflow.blog/2017/09/14/python-
growing-quickly/
24. Python modularity: conda vs pip
pip installs only Python packages, but conda installs
also the system binaries needed by the Python
packages.
Very important for a non-sudo user to leverage the
server capability