際際滷

際際滷Share a Scribd company logo
Why to learn?
Oleh Korkh
https://www.linkedin.com/in/oleh-korkh-ba2a6825/
https://www.facebook.com/korkholeh
https://twitter.com/korkholeh
https://bitbucket.org/korkholeh/
Flickr / Jonathan Kriz / CC
https://www.planetclaire.tv/quotes/montypython/monty-pythons-flying-circus/
Guido van Rossum
History
ABC programming language - early 1980s
Python implementation was started in 1989 (based on ideas
from ABC and Modula-3)
Python 0.9 - 1991
Python 1.0 - 1994
Python 2.0 - 2000
Python 2.7 - 2010
Python 3.0 - 2008
Python 3.6 - 2016
Implementations
 CPython (reference)
 PyPy
 StacklessPython
 Jython
 IronPython
 MicroPython
 Cython
https://wiki.python.org/moin/PythonImplementations
Code Example
lower = int(input("Enter lower range: "))
upper = int(input("Enter upper range: "))
print("Prime numbers between",lower,"and",upper,"are:")
for num in range(lower, upper+1):
# prime numbers are greater than 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
...
https://www.python.org/dev/peps/pep-0020/
Key features
 Simple. Minimalistic. Easy to learn. Easy to read.
 General purpose
 Excellent documentation
 Free and Open Source
 Modern High-Level Language
 Dynamically but strong typed. Optional static typing.
 Portable
 Interpreted
 Interactive
 Object Oriented, Imperative, Functional, Procedural
 Powerful control structures and data types
 Extensible
 Embeddable
 Large standard library. 117000+ packages in PyPi
 Large community
Examples
A piece of a real code (Django-based project)
https://www.tiobe.com/tiobe-index/
https://insights.stackoverflow.com/survey/2017
Most popular Most wanted
Who uses Python
 Google
 Yahoo
 Dropbox
 IBM
 NASA
 Mozilla
 Quora
 Reddit
 Instagram
 Pinterest
 YouTube
and a lot of others
System programming, scripting
Web-development
Science
 NumPy
 SciPy
 SymPy
 Pandas
 Mathplotlib
 SimPy
 Biopython
https://wiki.python.org/moin/NumericAndScientific
NLP, CV, ML, DL
 scikit-learn
 OpenCV
 NLTK
 Keras
 TensorFlow
 Theano
 CNTK
Enterprise
Desktop GUI
 TkInter (Tk)
 wxPython (wxWidgets)
 pyQt (Qt)
 pySide (Qt)
 pyGTK (GTK+)
 pywin32
 Kivy
 PyGame
OpTIC Glyndwr Ltd
http://www.ukspa.org.uk/members/optic
https://www.glyndwr.ac.uk/
Engineering
Other applications
Any cons?
 Not so fast like compiled languages (not a big problem in 90% of the cases)
 Dynamically typed (type hinting can be helpful)
 Global Interpreter Lock (hard to load your powerful multicore CPU)
 Not for mobile development (possible but ...)
 Not for memory intensive tasks (libraries can help)
 Lambdas are quite limited (in comparison with Lisp)
Thanks for your time!

More Related Content

Python. Why to learn?