Learn python
-
Upload
kracekumar-ramaraju -
Category
Technology
-
view
4.345 -
download
0
Transcript of Learn python
Programming at the speed of [email protected]
- needs Software Freedom Day@Alexandria University
Agenda
What is Python ???
Why Python ???
Syntax Walkthroughs
Linux and Python
What is Python ???
What is Python ???
Why Python ???
Syntax Walkthroughs
Linux and Python
History
Created by Guido von Rossum in 1990 (BDFL)
named after Monty Python's Flying Circus
http://www.python.org/~guido/
Blog http://neopythonic.blogspot.com/
Now works for Google
What is Python ???
general-purpose high-level programming language, often used as a scripting language.
interpreted, interactive, object-oriented.
incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes, automatic memory management.
remarkable power with very clear syntax.
has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++.
What is Python ???
supports multiple programming paradigms (primarily object oriented, imperative, and functional)
portable: runs on many Unix variants, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, OS/2, FreeBSD Solaris, OS/2, Amiga,AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE and even PocketPC !
What is Python ???
Developed and supported by a large team of volunteers - Python Software Foundation
Major implementations: CPython, Jython, Iron Python, PyPy
CPython - implemented in C, the primary implementation
Jython - implemented for the JVM
Pypy - implemented in Python
IronPython - implemented in C#, allows python to use the .NET libraries
Why Python ???
What is Python ???
Why Python ???
Syntax Walkthroughs
Linux and Python
Why Python ???
Readability, maintainability, very clear readable syntax
Fast development and all just works the first time...
very high level dynamic data types
Dynamic typing and automatic memory management
Free and open source
Implemented under an open source license. Freely usable and distributable, even for commercial use.
Simplicity , Great first language
Availability (cross-platform)
Interactivity (interpreted language)
Why Python ???
GUI support GUIs typically developed with Tk
Strong introspection capabilities
Intuitive object orientation
Natural expression of procedural code
Full modularity, supporting hierarchical packages
Exceptionbased error handling
The ability to be embedded within applications as a scripting interface
Scalable can play nicely with other languages
Batteries Included
The Python standard library is very extensive
regular expressions, codecs
date and time, collections, threads and mutexs
OS and shell level functions (mv, rm, ls)
Support for SQLite and Berkley databases
zlib, gzip, bz2, tarfile, csv, xml, md5, sha
logging, subprocess, email, json
httplib, imaplib, nntplib, smtplib
and much, much more ...
Python Libraries
Biopython - Bioinformatics
SciPy - Linear algebra, signal processing
NumPy - Fast compact multidimensional arrays
PyGame - Game Development
Visual Python - real-time 3D output
Django - High-level python Web framework
and much more ...
E.g. Projects with Python
Websites: Google, YouTube, Yahoo Groups & Maps, CIA.gov
Appengine:http://code.google.com/appengine/
Google: Python has been an important part of Google since the beginning., Peter Norvig.
Python application servers and Python scripting to create the web UI for BigTable (their database project)
Systems: NASA, LALN, CERN, Rackspace
Nasa Nebula http://nebula.nasa.gov/about
Games: Civilization 4, Quark (Quake Army Knife)
Mobile phones: Nokia S60 (Symbian), PythonCE
P2P: BitTorrent
Cont . . .
Maya, a powerful integrated 3D modeling and animation system, provides a Python scripting API.
EVE Online, a Massively Multi player Online Game (MMOG), makes extensive use of Python.
iRobot uses Python to develop commercial robotic devices.
What can you do with Python
Systems Programming
GUI
Internet Scripting
Database Programming
Numeric and Scientific Programming
Natural language analysis
What people say about Python ?
I can remember many Python idioms because
they're simpler. That's one more reason I program faster [in Python]. I still have to look up how to open a file every time I do it in Java. In fact, most things in Java require me to look something up.--Bruce Eckel
Cont . . .
Python ... is compact -- you can hold its entire
feature set (and at least a concept index of its libraries) in your head.
-- Eric S. Raymond
Syntax Walkthroughs
What is Python ???
Why Python ???
Syntax Walkthroughs
Linux and Python
Talk is cheap. Show me the code.
Linus Torvaldus
Hello World
Python 2.6
Python 3.0
print(Hello World) print Hello World
Starting python
Open terminal and Enter python and hit enter
Something like thiskracekumar@kracekumar-laptop:~$ pythonPython 2.6.4 (r264:75706, Dec 7 2009, 18:45:15) [GCC 4.4.1] on linux2Type "help", "copyright", "credits" or "license" for more information.>>>
Interactive shell
>>> 2+3
5
>>> 2*3
6
>>> 2/3
0
>>> 2//3
0
Interactive Shell cont . . .
>>> 2.0/3.0
0.66666666666666663
>>> 2.0/3
0.66666666666666663
>>> 2/3.0
0.66666666666666663
>>> 2-3
-1
Interactive shell Cont . . .
>>> complex(3,4)
(3+4j)
>>> 5+4j+5+6j
(10+10j)
>>> pow(4,5)
1024
>>> 4**5
1024
Math More
>>> 3%4
3
>>> long(34.999999)
34L
>>> int(34.9999)
34
>>> str(5)
'5'
Still more Interactive shell
>>> chr(45)
'-'
>>> ord('a')
97
You can do more in interactive shell ,But you might be bored,so Lets start writing small scripts
First program
Open first.py
Run python first.py ,Your program will be interpreted and python will produce .pyc in memory .
.pyc =>python compiled
Duck typed programming language
Interactive Shell (Revisited)
>>> b='0x123'
>>> type(b)
>>> b=23
>>> type(b)
>>> c=32L
>>> type(c)
Cont . . .
>>> c=2**890
>>> c
8254602048994769474255309139320571976856989469314398783249386078541779727448825929287769623244643560854287421769642635607536680617229461519539671538483430889193541937484454440136429963694163141453503639190799818814812942074243152169349951543234944945149040326527156224L
>>> len(str(c))
268
Str() =>Find string length
String
>>> name='krace'
>>> name1="krace"
>>> name2="""krace"""
>>> name3='''krace'''
>>> name
'krace'
>>> name1
'krace'
>>> name2
'krace'
>>> name3
'krace'
Importing in built modules
Open try_import .py
Strings
>>> name="kracekumar"
>>> name[1:]
'racekumar'
>>> name[:1]
'k'
>>> name[:5]
'krace'
>>> name[:-5]
'krace'
Strings are immutable
>>> name[0]="a"
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
>>> name
'kracekumar'
>>> name="K"+name[1:]
>>> name
'Kracekumar'
Above is a small hack to change the first character value in the name
Slicing
>>> name[1:5]
'race'
>>> name + " likes linux " #concatenation
'Kracekumar likes linux '
>>> name.startswith('k')
False
>>> name.upper()
'KRACEKUMAR'
Python introspection
Python introspection lets you to find all builtin functions,classes etc. . .
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'b', 'c', 'name', 'name1', 'name2', 'name3', 'sys']
dir(anyname) =>will yield all the supported functions.
In Built help
help(anyname)
>>> help(a)
no Python documentation found for '123'#here no documentation is available so you won't findhelp(sys)
Find the magic here :)
Data structure
3 in built data structure
List => a=[1,linux,2,Free Bsd]
Tuple => b=(1,apple,mango)#mango is not quoted because here it refers variable
Dictionary =>dict={name:kracekumar,email:[email protected],coll:Amrita}
Don't worry guys you have array but i will introduce later
Data structure
>>> a
[1, 'linux', 2, 'Free Bsd']
>>> b
(1, 'apple', 'mango')
>>> dict
{'coll': 'Amrita', 'name': 'kracekumar', 'email': '[email protected]'}
List is not linked list here
You can have string ,int,float in list,tuple,dictionary
Data structure in python
>>> type(a)
>>> type(b)
>>> type(dict)
Tuple is immutable
Cont . . .
>>> a[1]
'linux'
>>> a[1]="UBuntu"
>>> a[1]
'UBuntu'
>>> a
[1, 'UBuntu', 2, 'Free Bsd']
Cont . . .
>>> b[1]
'apple'
>>> b[1]="pine apple"
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
>>> b
(1, 'apple', 'mango')
Dictionary
>>> dict
{'coll': 'Amrita', 'name': 'kracekumar', 'email': '[email protected]'}
coll =>is key and 'Amrita' =>value
All key should be unique
>>> dict['coll']="ASE"
>>> print dict
{'coll': 'ASE', 'name': 'kracekumar', 'email': '[email protected]'}
>>> dir(dict)
Dictionary functions
dir() and help() will help you to know more about list tuple
dir(dict)
Tryhas_key()
Pop()
Items()
Slicing holds for list and tuples
Control Flow
if guess == number: #do somethingelif guess < number: #do something elseelse: #do something else
while True: #do something #break when done breakelse: #do something when the loop endsfor i in range(1, 5): print(i)else: print('The for loop is over')#1,2,3,4for i in range(1, 5,2): print(i)else: print('The for loop is over')#1,3
Program
Wap to find a no is prime or not
List comprehension
E.g >>> x=[y for y in range(0,20) if y%2 == 0]
>>> x
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Alternate way to do
Open list_comp.py
Dictionaries,list,tuple can be nested
Functions
Order is important unless using the name
Default arguments are supported
def sayHello(): print('Hello World!')def foo(name, age, address) :pass
foo('Tim', address='Home', age=36) def greet(name='World')
Functions
Variable length args acceptable as a list or dict
def total(initial=5, *numbers, **keywords): count = initial for number in numbers: count += number for key in keywords: count += keywords[key] return countprint(total(10, 1, 2, 3, vegetables=50, fruits=100))
Functions
def printMax(x, y): '''Prints the maximum of two numbers. The two values must be integers.''' x = int(x) # convert to integers, if possible y = int(y) if x > y: return x else: return yprintMax(3, 5)
Last important thing about variable
>>> a=[1,2,3]
>>> b=a
>>> a[0]=4
>>> b
[4, 2, 3]
>>> a
[4, 2, 3]
If you want to have copy of a list use slice or import copy(use dir and find out)
File Handling
Wap to read input from user and write back to file . =>fav_movie.py
Wap to read set of numbers and write to file and read the file and add all the nos.=>pickling.py
Swap 3 nos
Practice problem
Get a particular line from a file = >get_particular_line.py
Get a list of zip file content and its size =>zip_length.py
Get current system name and ip=>details.py
Generate a random password using python
Modules
Any python file is considered a module
Modules can be imported or run by themselves
if __name__ == '__main__': print('This program is being run by itself')else: print('I am being imported from another module')
Recursion
>>> def mysum(L):
... if not L:
... return 0
... else:
# Call myself
... return L[0] + mysum(L[1:])
>>> mysum([1, 2, 3, 4, 5])
15
OOPs
Python OOP is easy and simple
Class classname:
Def name():
Objectsinstance=classname()
Note no new keyword
first_class.py
Isinstance()
issubclass()
Inbuilt functions
hasattr(obj,attr)
getattr(obj,attr)=>retrieves attr value
setattr(obj,attr,val)=>set attr value
delattr(obj,attr)
first_class.py
add_book.py
More Resources
http://wiki.python.org/moin/BeginnersGuide
http://www.python.org/doc/faq/
Learn Python in 10 minutes: http://www.poromenos.org/tutorials/python
Byte of Python: http://www.swaroopch.com/notes/Python
Dive Into Python: http://diveintopython.org/
Write most useful links for beginners starting
Any Questions ???
Write something more interactive
Thank You