• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Programming Under Linux In Python
 

Programming Under Linux In Python

on

  • 8,705 views

Python language and some usage for it under Linux.

Python language and some usage for it under Linux.

Statistics

Views

Total Views
8,705
Views on SlideShare
8,639
Embed Views
66

Actions

Likes
12
Downloads
460
Comments
0

10 Embeds 66

http://marwanosman.blogspot.com 26
http://www.slideshare.net 14
http://www.marwanosman.com 10
http://dschool.co 4
http://192.168.6.52 4
http://www.techgig.com 3
http://feeds2.feedburner.com 2
http://localhost:3000 1
http://mk.znamus.ru 1
http://www.blogger.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • - needs Software Freedom Day@Alexandria University
  • Write most useful links for beginners starting
  • Write something more interactive

Programming Under Linux In Python Programming Under Linux In Python Presentation Transcript

  • Programming Under Linux In Python Marwan Osman [email_address]
  • 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++.
    • usable as an extension language for applications that need a programmable interface.
  • 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
    • Paradigm of your choice
    • 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
    • Exception­based 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, theads 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
  • Python Problems
    • Scripting-like language and compiled and runtime - hence slower than C/C+ + and slightly slower than Java
    • Memory economy hard to achieve (high level data-structures)
    • Relies on a locking mechanism called the Global Interpreter Lock (GIL) in multi-threading
  • Turn Arounds
    • Write extension libraries in C or C++
    • Use multiple processes instead of multiple threads
    • Use a different language
    • Use Stackless Python
  • Syntax Walkthroughs
    • What is Python ???
    • Why Python ???
    • Syntax Walkthroughs
    • Linux and Python
  • Hello World
    • Python 2.6
    • Python 3.0
    print (“Hello World”) print “Hello World”
  • Basics
    • Numbers:
      • Integers: 4 , 8 , 15, 16 , 23 , 42 ,108
      • Floating point: 4.23 , 42.8E-4
      • Complex Numbers: -5+4j , 2.3 – 4.6j
    • Strings
      • Immutable , Unicode by default
      • Single quotes, double quotes ,triple quotes (multiline)
      • 'Hello Word' , ”Hello World” , '''Hello World''' , ”””Hello World”””
      • Concatenation : 'What's ' 'your name?'
      • automatically converted in to "What's your name?”
  • Strings: format() >>>age = 25 >>>name = 'Swaroop' >>> print ( '{0} is {1} years old' .format(name, age)) Swaroop is 25 years old >>> '{0:.3}' .format( 1 / 3 ) '0.333' >>> '{0:_^11}' .format( 'hello' ) '___hello___' >>> '{name} wrote {book}' .format(name= 'Swaroop' , book= 'A Byte of Python' ) 'Swaroop wrote A Byte of Python'
  • Variables
    • Naming identifiers:
      • The first character be a letter of the alphabet (uppercase ASCII or lowercase ASCII or Unicode character) or an underscore ('_').
      • The rest of the identifier name can consist of letters (uppercase ASCII or lowercase ASCII or Unicode character), underscores ('_') or digits (0-9).
      • Identifier names are case-sensitive. For example, myname and myName are not the same.
      • Valid identifier e.g.: i, __my_name, name_23, a1b2_c3,
    resumÃÆâ€TMƢ€™Ãƒ¢â‚¬Å¡Ãƒâ€šÃ‚©_count.
      • invalid identifier e.g.: 2things, my-name
  • Indentation
    • Python uses whitespace to determine blocks of code
    def greet (person): if person == “Tim”: print (“Hello Master”) else : print (“Hello {name}”.format(name=person))
  • Control Flow if guess == number: #do something elif guess < number: #do something else else : #do something else while True : #do something #break when done break else : #do something when the loop ends for i in range( 1 , 5 ): print (i) else : print ( 'The for loop is over' ) #1,2,3,4 for i in range( 1 , 5 , 2 ): print (i) else : print ( 'The for loop is over' ) #1,3
  • Data Structures
    • List
      • Mutable data type, array-like
      • [1, 2, 4, “Hello”, False]
      • list.sort() ,list.append() ,len(list), list[i]
    • Tuple
      • Immutable data type, faster than lists
      • (1, 2, 3, “Hello”, False)
    • Dictionary
      • {42: “The answer”, “key”: “value”}
    • Set
      • ([“list”, “of”, “values”])
  • 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 count print (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: r eturn x else : r eturn y printMax( 3 , 5 )
  • 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' )
  • Modules #!/usr/bin/python # Filename: mymodule_demo.py import mymodule mymodule.sayhi() print ( 'Version' , mymodule.__version__) #!/usr/bin/python # Filename: mymodule.py def sayhi (): print ( 'Hi, this is mymodule speaking.' ) __version__ = '0.1' # End of mymodule.py
  • OOP class MyClass : &quot;&quot;&quot;This is a docstring.&quot;&quot;&quot; name = &quot;Eric&quot; def say (self): return ( 'My name is {0}' .format(name)) instance = MyClass() print instance.say()
  • OOP class Person : def __init__ (self, name): self.name = name def __del__ (self): print ( 'deleting this person' ,self.name) def sayHi (self): print ( 'Hello, my name is' , self.name) p = Person( 'Swaroop' ) p.sayHi() del p
  • OOP
    • All class members (including the data members) are public and all the methods are virtual in Python.
    • Double undersocre prefix turns them private
      • e.g.: __privatevar,
    • Inheritance
    • MetaClasses
    class SchoolMember (metaclass=ABCMeta): @abstractmethod def tell (self): pass
      • class Teacher (SchoolMember):
  • Input & Output #input something = input( 'Enter text: ' ) #output print (something)
  • Files myString = ”This is a test string” f = open( 'test.txt' , 'w' ) # open for 'w'riting f.write(myString) # write text to file f.close() # close the file f = open( 'test.txt' ) #read mode while True : line = f.readline() if len(line) == 0 : # Zero length indicates EOF break print (line, end= '' ) f.close() # close the file
  • Pickle import pickle shoplistfile = 'shoplist.data' shoplist = [ 'apple' , 'mango' , 'carrot' ] f = open(shoplistfile, 'wb' ) pickle.dump(shoplist, f) # dump the object to a file f.close() del shoplist # destroy the shoplist variable f = open(shoplistfile, 'rb' ) storedlist = pickle.load(f) # load the object from the file print (storedlist)
  • More …
    • Exception Handling
    • Standard Library
    • Passing Tuples
    • Logging Module
  • Linux and Python
    • What is Python ???
    • Why Python ???
    • Syntax Walkthroughs
    • Linux and Python
  • Linux and Python
    • Installed by default in most distros
    • Various editors
      • Text editors, IDLE , plugins for eclipse & Netbeans
    • Embeddable in many applications as scripting interface
      • Rhythmbox, Blender, OpenOffice, BitTorrent, ...
  • Linux and Python ” Talk is cheap. Show me the code.” Linus Torvalds
  • Demos
    • Backup Script
    • Simple XML Processing
    • Simple Spell Checker
    • Python Virus
    • Open Office Script
    • Rhythmbox python console
    • Basic Twitter client
  • Open Office macro script for python syntax Highlighing Demo #!usr/bin/python #Send a new Tweet from getpass import getpass import tweepy username = raw_input( 'Twitter username: ' ) password = getpass( 'Twitter password: ' ) basic_auth = tweepy.BasicAuthHandler(username, password) api = tweepy.API(basic_auth) api.update_status( &quot;Hello Twitter !!! I'm a Pythoneer&quot; )
  • 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/
    • Google
  • Any Questions ???
  • Thank You