Introduction to
Python
by:
Behnam Khan Beigi (yottanami)
Sameer Rahmani (lxsameer)
from:
Who we are ?
Karaj LUG
-
What is LUG ?
-
What do you do in LUG ?
-
What did you do in FOSS world ?
-
Karajlug community
-
How can I join karajlug
-
I'm not a linux expert , can I still join Karajlug ?
Learn more about Karajlug in:
We . . .
-
have about 12 years experience in GNU/Linux
-
have 8 years experience as senior developer in Yellowen
-
have 3 years experience in Yellowen SRE team
-
have over thousands of contributes to FOSS world
-
are official GNU project developer
Expert in:
PHP, Python, Ruby, Javascript, C/C++,Perl, Lua
Many successful projects
Why Python ?
-
Python is fast
-
Python is broad
- Readablity
- Python is easy to learn
-
It`s open
-
It's dynamic
-
Python is a general purpose language
- It's cross platform
- And much more reasons
Python is fast
Python is faster than other
"scripting" languages.
Python implemented specific parts
of language in C
Python has other implementations that
provide some solutions to increase
runtime speed dramatically.
PyPy
- PyPy is an implementation of python written in python
- PyPy implemented a JIT
- It's about 5time faster that Cython ( yeah Cython )
Numba
It`s a JIT to use you python code
It's very easy to use (just a decorator)
It can be use with legacy code too
Python is broad
Python can be used in many different
fields like:
- Web development
- System administration
- Game development
- 3D modeling
- Testing
- Analyzing big data
- . . .
Readability
Just take a look
from some_package import some_method
def say_hello (name=none):
if name is not none:
print("Hello " + name)
else:
print("Hello world")
say_hello("yottanami")
It's easy to learn
- Its syntax is very simple and English like
- Python does not use wired symbols or structures
- Lots of resources out there
- Python is very popular
Free Software
Python is open source and free (libre)
It means that you can
get the source code
change it as you need
and redistribute it
People can find bugs and fix them faster
Python is dynamic
What is a dynamic language ?
new code can be executed during runtime
without limitations
What's the point ?
It means that the user does not have to go through
the compile-run-debug cycle every time he makes
a change to the code
Python is general purpose
You can use python in
- Desktop apps
- Hand held applications
- Embedded Systems
- Electronics
- Robotics
- Game development
- Manufacture
- etc
Cross Platform
This OS`s supports python:
- GNU/Linux
- BSD family
- MS Windows
- Android (It's Linux ofcourse)
- Mac
- iOS
- Solaris
- .....
Who use python?
- NASA
- Youtube
- Source Forge
- Disqus
- Karajlug :P
- Pintrest
- Mozilla
- BitBucket
Get start
Installation
Windows
GNU/Linux
Android
Editors & IDEs
- Eclipse + pydev
- Eric5
- Geany
- Wing IDE
- Vistual Studio
- Sublime text
- Emacs
- Kuso
- Atom
- Notepad++
- VIM
- Python ( of course)
- pip
- IPython
- An editor or IDE
How to use Python
- How to run python scripts
- How to use Python shell
- How python runs scripts
- How to install packages using pip
- Some useful packages
How to run a python script ?
- If target script contains hashbang section:
$ python /path/to/target_script.py $ chmod +x /path/to/target_script.py # another way $ /path/to/target_script.py
- If target script does not have hashbang section:
$ python /path/to/target_script.py
Useful pakcages
- Ipython
- bpython
- virtualenv
- pep8
- winpdb
A simple trick
Learn faster by:
-
`help` function
- `dir` function
- `__dict__` method
Basics
- Variables
- General types
- Indentation & Code blocks
- Operators
- Conditions
- Loops
- Functions
- Exceptions
- Modules
- OOP
Variables
- What is a variable
- How we define a variable
- Variable scopes
Data Structures
- String
- Numbers
- Lists
- Tuples
- Dictionaries
Strings
- Strings define using single or double quote
- Strings are immutable
- characters of an string are accessible using
[] operatore
Numbers
Numbers are objects too
There are different types of numbers
Float, Integer, Long and etc
Lists
- Lists are mutable
- Think of lists as array in other langs but more flexible
- List can have elements with different types
- List elements are accessible by [] operator
Tuples
Tuples are just like lists but immutable
Dictionaries
- Dictionaries are mutable
- Dictionaries are lists with flexible indexes
- Index of dictionaries can be an object
- Dictionary values are accessible using [] operator
Indentation
- What does it means ?
- What is a code block ?
- How we defines code blocks ?
Operators
- Math operators ( +, -, *, /, **)
- Logical operators ( <, >, <>, == , <=, >=, and, or, not)
- Assignment operators (*=, +=, -=, /=)
- Binary operators (<<, >>, &, |, ^)
- Membership operators (in, not in)
Conditions & Loops
- if - if/else
- for
- while
- iterators
Functions
- What is a function
- What is a method
- How to define a function
- Function arguments
- Return values
Exceptions
- What is an exception?
- When does exceptions raises?
- How to catch exceptions
OOP
- What is OOP ?
- How does it help us?
- How can i define a class ?
- How can i define attributes ?
- How can i define methods ?
- What is inheritance ?
Where to get help ?
- Python documents
- Search the web
- Python forums
- IRC channels
- Mailing Lists
- LUGs & PUGs
Resources
- Python for data analysis ISBN 1449319793
- Data Structures and Algorithms in Python
ISBN 1435455002
- Python For Dummies ISBN 0471778648
- Python Programming for the Absolute Beginne
ISBN 1435455002
- Byte of python
- Dive into python
Do you have any question ?
Web:
Karajlug.org
IRC :
irc.freenode.net #5hit channel
ML :
https://lists.nongnu.org/mailman/listinfo/karajlug-general
twitter :
@yottanami @lxsameer
Email:
yottanami@gnu.org
lxsameer@gnu.org
try: run_a_workshop() print("Good job guys")
except PeopleDidNotLearn: print("We have to try harder")
finally: print("Heeeell yeah, It's finished")
Introduction to Python
By Sameer Rahmani
Introduction to Python
Basic introduction to Python programming language for newbies
- 2,563