let’s learn python an introduction to python

62
Let’s Learn Python An introduction to Python Jaganadh G Project Lead NLP R&D 365Media Pvt. Ltd. [email protected] KiTE, Coimbatore 19 July 2011 Jaganadh G Let’s Learn Python

Upload: jaganadh-gopinadhan

Post on 08-May-2015

1.547 views

Category:

Technology


7 download

DESCRIPTION

Let’s Learn PythonAn introduction to Python

TRANSCRIPT

Page 1: Let’s Learn Python An introduction to Python

Let’s Learn PythonAn introduction to Python

Jaganadh GProject Lead NLP R&D

365Media Pvt. [email protected]

KiTE, Coimbatore

19 July 2011

Jaganadh G Let’s Learn Python

Page 2: Let’s Learn Python An introduction to Python

Just a word about me !!

Working in Natural Language Processing (NLP), MachineLearning, Data Mining

Passionate about Free and Open source :-)

When gets free time teaches Python and blogs athttp://jaganadhg.freeflux.net/blog reviews books forPackt Publishers.

Works for 365Media Pvt. Ltd. Coimbatore India.

Member of Indian Python Software Society

Jaganadh G Let’s Learn Python

Page 3: Let’s Learn Python An introduction to Python

Python

Python is an easy to learn, powerful programminglanguage.

It has efficient high-level data structures and a simple buteffective approach to object-oriented programming.

Elegant syntax

Dynamic typing

Interpreted

Ideal for scripting and rapid application development

Developed by Guido Van Rossum

Free and Open Source

Jaganadh G Let’s Learn Python

Page 4: Let’s Learn Python An introduction to Python

Features of Python

Simple1 Python is a simple and minimalist language2 Reading a good Python program feels almost like

reading English

Easy to Learn1 Python is extremely easy to get started with2 Python has an extraordinarily simple syntax

Free and Open Source

High-level Language

Portable, You can use Python on1 Linux2 Microsoft Windows3 Macintosh4 ...........

Jaganadh G Let’s Learn Python

Page 5: Let’s Learn Python An introduction to Python

Features of Python

Interpreted

Object Oriented

Extensible

Embeddable

Batteries included

Jaganadh G Let’s Learn Python

Page 6: Let’s Learn Python An introduction to Python

Installing Python

If you are using a Linux distribution such as Fedora orUbuntu then you probably already have Python installedon your system.

To test it open a shell program like gnome-terminal orkonsole and enter the command python -V

If you are using windows - go tohttp://www.python.org/download/releases/2.7/ anddownloadhttp://www.python.org/ftp/python/2.7/python-2.7.msi.Then double click and install it.

You may need to set PATH variable in EnvironmentSettings

Jaganadh G Let’s Learn Python

Page 7: Let’s Learn Python An introduction to Python

Hello world !!!

Lets write a ”Hello world!!” program

Fire-up the terminal and invoke Python interpreter

Type print ”Hello World !!! ”

Jaganadh G Let’s Learn Python

Page 8: Let’s Learn Python An introduction to Python

Hello world !!!

#!/usr/bin/env python

#Just a Hello World !! program

print "Hello World!!"

You can write the code in you favorite editor, save andrun it.

Extension for the filename should be .py

Save it as hello.py and make it as executable !

#chmod +x hello.py

Run the program #python hello.py

Jaganadh G Let’s Learn Python

Page 9: Let’s Learn Python An introduction to Python

Using the Python Interpreter

The Python iterpreter can be used as a calculator !!

Jaganadh G Let’s Learn Python

Page 10: Let’s Learn Python An introduction to Python

Keywords

The following are keywords or reserved words in Python

These words can’t be used as variable names or functionnames or class names

and del for is raise assert elif from lambda return break elseglobal not try class except if or while continue exec importpass yield def finally in print

Jaganadh G Let’s Learn Python

Page 11: Let’s Learn Python An introduction to Python

Variables

age = 32year = 1997avg = 12.5

Note:

There is no need to specify the type as like in C or Java

Jaganadh G Let’s Learn Python

Page 12: Let’s Learn Python An introduction to Python

String

name = ”jagan”anname = ’jagan’annname = ”””jagan”””

Note:

There is no need to specify the type as like in C or Java

Jaganadh G Let’s Learn Python

Page 13: Let’s Learn Python An introduction to Python

Identifier Naming

IdentifiersIdentifiers are names given to identify something.Rules to follow for naming identifiers

1 The first character of the identifier must be a letter ofthe alphabet (upper or lowercase) or an underscore (’ ’).

2 The rest of the identifier name can consist of letters(upper or lowercase), underscores (’ ’) or digits (0-9).

3 Identifier names are case-sensitive. For example,myname andmyName are not the same. Note thelowercase n in the former and the uppercaseN in telatter.

4 Examples of valid identifier names arei, my name,name 23 and a1b c3 .

5 Examples of invalid identifier names are 2things, this isspaced out and my-name.

Jaganadh G Let’s Learn Python

Page 14: Let’s Learn Python An introduction to Python

Operators

+ Plus- Minus/ divide* Multiply

** Power// Floor Division% Modulo< Less than> Greater than

<= Less than or equal to>= Greater than equal to== Equal to

Jaganadh G Let’s Learn Python

Page 15: Let’s Learn Python An introduction to Python

Basic Math

! = Not equal tonot Boolian NOTand Boolian ANDor Boolian OR& Bitwise AND

Note:

Operator precedence is as same as of other programminglanguages

Jaganadh G Let’s Learn Python

Page 16: Let’s Learn Python An introduction to Python

Data Structure: List

A list is a data structure that holds an ordered collectionof items

fruits = [’apple’,’banana’,’orange’]

marks = [12,15,17]

avgs = [1.5, 4.5,7.8]

avgm = [1.5, 4.5,7.8,avgs]

lists are mutable

elemnts can be accessed by index numbers

either positive index or negative index can be used toaccess elements

Jaganadh G Let’s Learn Python

Page 17: Let’s Learn Python An introduction to Python

Data Structure: List

elemnts can be accessed by index numbers

fruits[0]

elements can be accessed with positive or negative index

avgs[-1]

new elements can be appended to a list

fruits.append(’cherry’)

list can be sorted or reversed

fruits.sort()

fruits.reverse()

length of a list can be identified by the ’len’ functionlen(fruits)

Jaganadh G Let’s Learn Python

Page 18: Let’s Learn Python An introduction to Python

Data Structure: List

elements can be deleted del fruits[0]

list can be sliced new list = fruits[1:3]

lists can be extendedflowers = [’rose’,’lilly’,’tulip’]fruits.extend(flowers)

the index method can be used to find index of an item ina listfruits.index(’apple’)

Jaganadh G Let’s Learn Python

Page 19: Let’s Learn Python An introduction to Python

Data Structure: List

The pop method removes an element from a listfruits.pop()

The remove method is used to remove the firstoccurrence of a value:flowers = [’rose’,’lilly’,’tulip’,’rose’]flowers.remove(’rose’)

The reverse method reverses the elements in the list.flowers.reverse()

The sort method is used to sort lists in placeflowers.sort()

Jaganadh G Let’s Learn Python

Page 20: Let’s Learn Python An introduction to Python

Data Structure: List

>>> numbers = [5, 2, 9, 7]

>>> numbers.sort(cmp)

>>> numbers

[2, 5, 7, 9]

>>> x = [’aardvark’, ’abalone’, ’acme’,\

’add’, ’aerate’]

>>> x.sort(key=len)

>>> x

[’add’, ’acme’, ’aerate’, ’abalone’, ’aardvark’]

>>> x = [4, 6, 2, 1, 7, 9]

>>> x.sort(reverse=True)

Jaganadh G Let’s Learn Python

Page 21: Let’s Learn Python An introduction to Python

Data Structure: Tuple

Tuples are sequences like lists .

The only difference is that tuples are immutable

Values in a tuple are enclosed in parentheses (())mytuple = (2,3,4,5,6,7,8)

Elements in a tuple can be accessed by index value

It is not possible to sort or reverse tuple

Jaganadh G Let’s Learn Python

Page 22: Let’s Learn Python An introduction to Python

Data Structure: Tuple

There is a way to sort and reverse tuple

atuple = (9,6,4,8,3,7,2)

sortuple = tuple(sorted(atuple))

revtuple = tuple((reversed(atuple))

Note:

A tuple can be converted to list and vice versa

tup = (1,2,3)

li = list(tup)

atup = tuple(li)

Jaganadh G Let’s Learn Python

Page 23: Let’s Learn Python An introduction to Python

Data Structure: Dictionary

Another useful data type built into Python is thedictionary

Dictionaries are sometimes found in other languages asassociative memories or associative arrays.

Dictionaries consist of pairs (called items) of keys andtheir corresponding values

phonebook = {’Alice’: ’2341’, ’Beth’: ’9102’,

’Cecil’: ’3258’}

phonebook[’Alice’] #’2341’

Jaganadh G Let’s Learn Python

Page 24: Let’s Learn Python An introduction to Python

Basic Dictionary Operations

len(d) returns the number of items (key-value pairs) in d

d = {’Alice’: ’2341’, ’Beth’: ’9102’, ’Cecil’: ’3258’}

len(d)

3

d[’Alice’] returns the value associated with the key k ie”2341”

d[’Alice’] = ’456’ associates the value ’456’ with the key’Alice’

del d[’Alice’] deletes the item with key ’Alice’

’Alice’ in d checks whether there is an item in d that hasthe key ’Alice’

Jaganadh G Let’s Learn Python

Page 25: Let’s Learn Python An introduction to Python

Data Structure: Dictionary

Key types: Dictionary keys dont have to be integers(though they may be). They may be any immutable type,such as floating-point (real) numbers, strings, or tuples.

Automatic addition: You can assign a value to a key, evenif that key isnt in the dictionary to begin with; in thatcase, a new item will be created. You cannot assign avalue to an index outside the lists range (without usingappend or something like that).

phonebook[’Ravi’] = ’567’

Membership: The expression k in d (where d is adictionary) looks for a key, not a value.

’Alice’ in phonebook

Jaganadh G Let’s Learn Python

Page 26: Let’s Learn Python An introduction to Python

Data Structure: Dictionary

All the keys in a dictionary can be accessed as a list

phonebook.keys()

[’Beth’, ’Alice’, ’Cecil’]

All the values in a dictionary can be accessed as a list

phonebook.values()

[’9102’, ’2341’, ’3258’]

The keys and values in a dictionary can be accessed as alist of tuples

phonebook.items()

[(’Beth’, ’9102’), (’Alice’, ’2341’),

(’Cecil’, ’3258’)]

Jaganadh G Let’s Learn Python

Page 27: Let’s Learn Python An introduction to Python

Control Flow:The if statement

The if statement is used to check a condition and if thecondition is true, we run a block of statements (called theif-block), else we process another block of statements (calledthe else-block). The else clause is optional.

if <test1>: #if test

<statement1> #associated block

elif <test2>: # Optional else if (elif)

<statement2>

else: #optional else

<statement3>

Jaganadh G Let’s Learn Python

Page 28: Let’s Learn Python An introduction to Python

Control Flow:The if statement

name = raw_input(""Enter your name: "")

if name == "trisha":

print "Hi trisha have you seen my chitti"

elif name == "aishwarya":

print "Hai Aishu have u seen my chitti"

else:

print "Oh!! my chitti !!!!"

Jaganadh G Let’s Learn Python

Page 29: Let’s Learn Python An introduction to Python

Control Flow:The while statement

The while statement allows you to repeatedly execute a blockof statements as long as a condition is true. A while statementis an example of what is called a looping statement. A whilestatement can have an optional else clause.The structure ofwhile loop is

while <test>:

<statement>

else:

<statement>

Jaganadh G Let’s Learn Python

Page 30: Let’s Learn Python An introduction to Python

Control Flow:The while statement

#!/usr/bin/python

a = 0

b = 10

while a < b:

print a

a += 1

#0123456789

Jaganadh G Let’s Learn Python

Page 31: Let’s Learn Python An introduction to Python

Control Flow:The for loop

The for..in statement is another looping statement whichiterates over a sequence of objects i.e. go through each itemin a sequence.

for <target> in <object>:

<statement>

else:

statement

Jaganadh G Let’s Learn Python

Page 32: Let’s Learn Python An introduction to Python

Control Flow:The for loop

#!/usr/bin/python

names = [’Jaganadh’,’Biju’,’Sreejith’,\

’Kenneth’,’Sundaram’]

for name in names:

print "Hello %s" %name

Jaganadh G Let’s Learn Python

Page 33: Let’s Learn Python An introduction to Python

Control Flow:The for loop

#!/usr/bin/python

for i in range(1, 5):

print i

else:

print ’The for loop is over’

Jaganadh G Let’s Learn Python

Page 34: Let’s Learn Python An introduction to Python

Control Flow: The break,continue and pass

statement

The break statement is used to break out of a loop statementi.e. stop the execution of a looping state-ment, even if theloop condition has not become False or the sequence of itemshas been completely iterated over.

while <test1>:

<statement>

if <test1>:break

else <test2>:continue

else:

<statement>

Jaganadh G Let’s Learn Python

Page 35: Let’s Learn Python An introduction to Python

Control Flow: continue

#Example for continue

x = 10

while x:

x = x -1

if x % 2 != 0: continue

print x

Jaganadh G Let’s Learn Python

Page 36: Let’s Learn Python An introduction to Python

Control Flow:break

#Example for break

while True:

s = raw_input(’Enter something : ’)

if s == ’quit’:

break

print ’Length of the string is’, len(s)

print ’Done’

Jaganadh G Let’s Learn Python

Page 37: Let’s Learn Python An introduction to Python

Control Flow:pass

#Example for pass

while 1:

pass

Jaganadh G Let’s Learn Python

Page 38: Let’s Learn Python An introduction to Python

Functions

Functions are reusable pieces of programs. They allow you togive a name to a block of statements and you can run thatblock using that name anywhere in your program and anynumber of times. This is known as calling the function.Defining Functions

def <name>(arg1,arg2,...argN):

<statement>

#!/usr/bin/python

# Filename: function1.py

def sayHello():

print ’Hello World!’

# End of function

sayHello() # call the function

Jaganadh G Let’s Learn Python

Page 39: Let’s Learn Python An introduction to Python

Functions with parameters

A function can take parameters which are just values yousupply to the function so that the function can do somethingutilising those values.

#!/usr/bin/python

# Filename: func_param.py

def printMax(a, b):

if a > b:

print a, ’is maximum’

else:

print b, ’is maximum’

printMax(3, 4) # directly give literal values

x = 5

y = 7

printMax(x, y)

Jaganadh G Let’s Learn Python

Page 40: Let’s Learn Python An introduction to Python

Functions: Using Keyword Arguments

#!/usr/bin/python

# Filename: func_key.py

def func(a, b=5, c=10):

print ’a is’, a, ’and b is’, b, ’and c is’, c

func(3, 7)

func(25, c=24)

func(c=50, a=100)

Jaganadh G Let’s Learn Python

Page 41: Let’s Learn Python An introduction to Python

Functions: Return Statement

#!/usr/bin/python

# Filename: func_return.py

def maximum(x, y):

if x > y:

return x

else:

return y

print maximum(2, 3)

Jaganadh G Let’s Learn Python

Page 42: Let’s Learn Python An introduction to Python

Functions: Arbitrary Arguments

def minimum(*args):

res = args[0]

for arg in args[1:]:

if arg < res:

res = arg

return res

print minimum(3,4,1,2,5)

Jaganadh G Let’s Learn Python

Page 43: Let’s Learn Python An introduction to Python

Functions: Arbitrary Arguments

def arbArg(**args):

print args

print arbArg(a=1,b=2,c=6)

#{’a’: 1, ’c’: 6, ’b’: 2}

Jaganadh G Let’s Learn Python

Page 44: Let’s Learn Python An introduction to Python

Object Oriented Programming

#!/usr/bin/python

# Filename: simplestclass.py

class Person:

pass # An empty block

p = Person()

print p

Jaganadh G Let’s Learn Python

Page 45: Let’s Learn Python An introduction to Python

Object Oriented Programming:Using Object

Methods

Class/objects can have methods just like functions except thatwe have an extra self variable.

class Person:

def sayHi(self):

print ’Hello, how are you?’

p = Person()

p.sayHi()

Jaganadh G Let’s Learn Python

Page 46: Let’s Learn Python An introduction to Python

Object Oriented Programming:The init

method

The init method is run as soon as an object of a class isinstantiated. The method is useful to do any initialization youwant to do with your object. Notice the double underscoreboth in the beginning and at the end in the name.

#!/usr/bin/python

# Filename: class_init.py

class Person:

def __init__(self, name):

self.name = name

def sayHi(self):

print ’Hello, my name is’, self.name

p = Person(’Jaganadh G’)

p.sayHi()Jaganadh G Let’s Learn Python

Page 47: Let’s Learn Python An introduction to Python

Object Oriented Programming:Class and

Object Variables

There are two types of fields - class variables and objectvariables which are classified depending on whether the classor the object owns the variables respectively.Class variables are shared in the sense that they are accessedby all objects (instances) of that class.There is only copy ofthe class variable and when any one object makes a change toa class variable, the change is reflected in all the otherinstances as well.Object variables are owned by each individual object/instanceof the class. In this case, each object has its own copy of thefield i.e. they are not shared and are not related in any way tothe field by the samen name in a different instance of thesame class.

Jaganadh G Let’s Learn Python

Page 48: Let’s Learn Python An introduction to Python

Object Oriented Programming:Class and

Object Variables

#!/usr/bin/python

# Filename: objvar.py

class Person:

’’’Represents a person.’’’

population = 0

def __init__(self, name):

’’’Initializes the person’s data.’’’

self.name = name

print ’(Initializing %s)’ % self.name

Person.population += 1

Jaganadh G Let’s Learn Python

Page 49: Let’s Learn Python An introduction to Python

Object Oriented Programming:Class and

Object Variables

def __del__(self):

’’’I am dying.’’’

print ’%s says bye.’ % self.name

Person.population -= 1

if Person.population == 0:

print ’I am the last one.’

else:

print ’There are still %d people left.’ \

% Person.population

def sayHi(self):

’’’Greeting by the person.

Really, that’s all it does.’’’

print ’Hi, my name is %s.’ % self.nameJaganadh G Let’s Learn Python

Page 50: Let’s Learn Python An introduction to Python

Object Oriented Programming:Class and

Object Variables

def howMany(self):

’’’Prints the current population.’’’

if Person.population == 1:

print ’I am the only person here.’

else:

print ’We have %d persons here.’\

% Person.population

swaroop = Person(’Swaroop’)

swaroop.sayHi()

swaroop.howMany()

kalam = Person(’Abdul Kalam’)

kalam.sayHi()

kalam.howMany()

swaroop.sayHi()

swaroop.howMany()

Jaganadh G Let’s Learn Python

Page 51: Let’s Learn Python An introduction to Python

Object Oriented Programming: Inheritance

#!/usr/bin/python

# Filename: inherit.py

class SchoolMember:

’’’Represents any school member.’’’

def __init__(self, name, age):

self.name = name

self.age = age

print ’(Initialized SchoolMember: %s)’\

% self.name

def tell(self):

’’’Tell my details.’’’

print ’Name:"%s" Age:"%s"’ % (self.name, \

self.age),

Jaganadh G Let’s Learn Python

Page 52: Let’s Learn Python An introduction to Python

Object Oriented Programming: Inheritance

class Teacher(SchoolMember):

’’’Represents a teacher.’’’

def __init__(self, name, age, salary):

SchoolMember.__init__(self, name, age)

self.salary = salary

print ’(Initialized Teacher: %s)’ % self.name

def tell(self):

SchoolMember.tell(self)

print ’Salary: "%d"’ % self.salary

Jaganadh G Let’s Learn Python

Page 53: Let’s Learn Python An introduction to Python

Object Oriented Programming: Inheritance

class Student(SchoolMember):

’’’Represents a student.’’’

def __init__(self, name, age, marks):

SchoolMember.__init__(self, name, age)

self.marks = marks

print ’(Initialized Student: %s)’ % self.name

def tell(self):

SchoolMember.tell(self)

print ’Marks: "%d"’ % self.marks

t = Teacher(’Mrs. Shrividya’, 40, 30000)

s = Student(’Swaroop’, 22, 75)

members = [t, s]

for member in members:

member.tell()

Jaganadh G Let’s Learn Python

Page 54: Let’s Learn Python An introduction to Python

Modules

A module is basically a file containing all your functions andvariables that you have defined. To reuse the module in otherprograms, the filename of the module must have a .pyextension.By using the import statement you can use built-in modules inPython

import sys , os

sys.argv[1]

os.name

os.curdir

import math

math.sqrt(9)

Jaganadh G Let’s Learn Python

Page 55: Let’s Learn Python An introduction to Python

I/O Operations

#File reading

myfile = open("help.txt",’r’)

filetext = myfile.read()

myfile.close()

#file reading 2

myfile = open("help.txt",’r’)

filetext = myfile.readlines()

myfile.close()

Jaganadh G Let’s Learn Python

Page 56: Let’s Learn Python An introduction to Python

I/O Operations

with open(help.txt, r) as f:

read_data = f.read()

#file writing

out = open(’out.txt’,’w’)

out.write("Hello out file")

out.close()

Jaganadh G Let’s Learn Python

Page 57: Let’s Learn Python An introduction to Python

Handling Exceptions

while True:

try:

x = int(raw_input("Please enter a number: "))

break

except ValueError:

print "Oops! That was no valid number.Try again"

Jaganadh G Let’s Learn Python

Page 58: Let’s Learn Python An introduction to Python

Handling Exceptions

import sys

try:

f = open(myfile.txt)

s = f.readline()

i = int(s.strip())

except IOError as (errno, strerror):

print "I/O error({0}): {1}".format(errno, strerror)

except ValueError:

print "Could not convert data to an integer."

except:

print "Unexpected error:", sys.exc_info()[0]

raise

Jaganadh G Let’s Learn Python

Page 59: Let’s Learn Python An introduction to Python

Questions ??

Jaganadh G Let’s Learn Python

Page 60: Let’s Learn Python An introduction to Python

Where can I post questions?

Search in the net . If nothing found

Post in forums

ILUGCBE http://ilugcbe.techstud.org

Jaganadh G Let’s Learn Python

Page 61: Let’s Learn Python An introduction to Python

References

A Byte of Python : Swaroop CH

Dive in to Python

Many wikibooks .............

Jaganadh G Let’s Learn Python

Page 62: Let’s Learn Python An introduction to Python

Finally

Jaganadh G Let’s Learn Python