introduction to programming with python

75
Introduction to Python Sushant Mane President @Walchand Linux User's Group sushantmane.github.io

Upload: sushant-mane

Post on 18-Jul-2015

161 views

Category:

Software


2 download

TRANSCRIPT

Introduction to Python

Sushant ManePresident @Walchand Linux User's Group

sushantmane.github.io

What is Python?

● Python is a programming language that lets you work quickly and integrate systems more effectively.

● Interpreted

● Object Oriented

● Dynamic language

● Multi-purpose

Let's be Comfortable

● Let’s try some simple math to get started!

>>>print 1 + 2

>>>print 10 * 2

>>>print 5 - 3

>>>print 4 * 4

help() for help

● To get help on any Python object type

help(object)

eg. To get help for abs function

>>>help(abs)

● dir(object) is like help() but just gives a quick list of the defined symbols

>>>dir(sys)

Basic Data type's

● Numbers

– int

– float

– complex● Boolean

● Sequence

– Strings

– Lists

– Tuples

Why built-in Types?

● Make programs easy to write.

● Components of extensions.

● Often more efficient than custom data structures.

● A standard part of the language

Core Data Types

Row 1 Row 2 Row 3 Row 40

2

4

6

8

10

12

Column 1

Column 2

Column 3

Object type literals/creation

Numbers 1234, 3.1415, 3+4j, Decimal, Fraction

Strings 'spam', “india's", b'a\x01c'

Lists [1, [2, 'three'], 4]

Dictionaries {'food': 'spam', 'taste': 'yum'}

Tuples (1, 'spam', 4, 'U')

Files myfile = open(‘python', 'r')

Sets set('abc'), {'a', 'b', 'c'}

Other core types Booleans, type, None

Program unit types Functions, modules, classes

Variables

● No need to declare

● Need to initialize

● Almost everything can be assigned to a variable

Numeric Data Types

int

>>>a = 3

>>>a

● a is a variable of the int type

long

>>>b = 123455L

>>>b = 12345l

● b is a long int

● For long -- apeend l or L to number

float

>>>p = 3.145897

>>>p

● real numbers are represented using the float

● Notice the loss of precision

● Floats have a fixed precision

complex

>>c = 3 + 4j

● real part : 3 ● imaginary part : 4

>>c.real

>>c.imag

>>abs(c)

● It’s a combination of two floats

● abs gives the absolute value

Numeric Operators

● Addition : 10 + 12

● Substraction : 10 - 12

● Division : 10 / 17

● Multiplication : 2 * 8

● Modulus : 13 % 4

● Exponentiation : 12 ** 2

Numeric Operators

● Integer Division (floor division)

>>>10 / 17 0● Float Division

>>>10.0 / 17 0.588235

>>>flot(10) / 17 0.588235● The first division is an integer division

● To avoid integer division, at least one number should be float

VariablesAnd

Assignment

Variables

● All the operations could be done on variables

>>>a = 5

>>>b = 3.4

>>>print a, b

Assignments

● Assignment

>>>c = a + b

● c = c / 3 is equivalent to c /= 3

● Parallel Assignment

>>>a, b = 10, 12

>>>c, d, red, blue = 123, 121, 111, 444

Booleans and Operations

● All the operations could be done on variables

>>>t = True

>>>t

>>>f = not True

>>>f

>>>f or t

● can use parenthesis.

>>>f and (not t)

Container Data Types

i.e. Sequences

Sequences

● Hold a bunch of elements in a sequence

● Elements are accessed based on position in the sequence

● The sequence data-types

– list

– tuple

– dict

– str

list

● Items are enclosed in [ ] and separated by “ , ” constitute a list

>>>list = [1, 2, 3, 4, 5, 6]

● Items need not to have the same type● Like indexable arrays● Extended at right end● List are mutable (i.e. will change or can be changed)● Example>>>myList = [631, “python”, [331, ”computer” ]]

List Methods

● append() : myList.append(122)● insert() : myList.insert(2,”group”)● pop() : myList.pop([i] )● reverse() : myList.reverse()● sort() : myList.sort([ reverse=False] )

– where [] indicates optional

Tuples

● Items are enclosed in ( ) and separated by ”, ” constitute a list

>>>tup = (1, 2, 3, 4, 5, 6)

● Nesting is Possible

● Outer Parentheses are optional

● tuples are immutable (i.e. will never change cannot be changed)

● Example>>>myTuple = (631, “python”, [ 331 , ”computer” ])

Tuple Methods

Concatenation : myTuple + (13, ”science”)Repeat : myTuple * 4Index : myTuple[i]Length : len( myTuple )Membership : ‘m’ in myTuple

Strings

Strings . . .

● Contiguous set of characters in between

quotation marks

eg. ”wceLinuxUsers123Group”

● Can use single or double quotes

>>>st = 'wceWlug'

>>>st = ”wceWlug”

Strings . . .

● three quotes for a multi-line string.

>>> ''' Walchand

. . . Linux

. . . Users

. . . Group'''

>>> ”””Walchand

. . . Linux

. . . Users

. . . Group”””

Strings Operators

● “linux"+"Users" 'linuxUsers' # concatenation

● "linux"*2 'linuxlinux' # repetition

● "linux"[0] 'l' # indexing

● "linux"[-1] 'x' # (from end)

● "linux"[1:4] 'iu' # slicing

● len("linux") 5 # size

● "linux" < "Users" 1 # comparison

● "l" in "linux" True # search

Strings Formating

● <formatted string> % <elements to insert>

● Can usually just use %s for everything, it will convert the object to its String representation.

● eg.

>>> "One, %d, three" % 2

'One, 2, three'

>>> "%d, two, %s" % (1,3)

'1, two, 3'

>>> "%s two %s" % (1, 'three')

'1 two three'

Strings and Numbers

>>>ord(text)

● converts a string into a number.

● Example:

ord("a") is 97,

ord("b") is 98, ...

Strings and Numbers

>>>chr(number)

● Example:

chr(97) is 'a',

chr(98) is 'b', ...

Python : No Braces

● Uses indentation instead of braces to determine

the scope of expressions

● Indentation : space at the beginning of a line of

writing

eg. writing answer point-wise

Python : No Braces

● All lines must be indented the same amount to be

part of the scope (or indented more if part of an

inner scope)

● forces the programmer to use proper indentation

● indenting is part of the program!

Python : No Braces

● All lines must be indented the same amount to be

part of the scope (or indented more if part of an

inner scope)

● forces the programmer to use proper indentation

● indenting is part of the program!

ControlFlow

Control Flow

● If statement : powerful decision making

statement

● Decision Making And Branching

● Used to control the flow of execution of program

● Basically two-way decision statement

If Statement

>>> x = 12

>>> if x <= 15 :

y = x + 15

>>> print y

● if condition :

statements

Indentation

If-else Statement

● if condition :

Statements

else :

Statements

>>> x = 12

>>> if x <= 15 :

y = x + 13

Z = y + y

else :

y = x

>>> print y

If-elif Statement

● if condition :

Statements

elif condition :

Statements

else :

Statements

>>> x = 30

>>> if x <= 15 :

y = x + 13

elif x > 15 :

y = x - 10

else :

y = x

>>> print y

Looping

Looping

● Decision making and looping

● Process of repeatedly executing a block of

statements

while loop

● while condition :

Statements

>>> x = 0

>>> while x <= 10 :

x = x + 1

print x

>>> print “x=”,x

Loop control statement

break Jumps out of the closest enclosing loop

continue Jumps to the top of the closest enclosing loop

while – else clause

● while condition :

Statements

else :

Statements

>>> x = 0

>>> while x <= 6 :

x = x + 1

print x

else :

y = x

>>> print y

The optional else clause

runs only if the loop exits

normally (not by break)

For loop

>>>for n in [1,5,7,6]:

print n

>>>for x in range(4):

print x

iterating through a list of values

range()

● range(N) generates a list of numbers [0,1, ...,N-1]

● range(i , j, k)

● I --- start (inclusive)

● j --- stop (exclusive)

● k --- step

For – else clause

● for var in Group :

Statements

else :

Statements

>>>for x in range(9):

print x

else : y = x

>>> print y

For loops also may have the

optional else clause

User : Input

>>> var = input(“Enter your name :”)

>>> var = raw_input(“Enter your name & BDay”)

● The raw_input(string) method returns a line of user input as a string

● The parameter is used as a prompt

Functions

functions

● Code to perform a specific task.

● Advantages:

● Reducing duplication of code● Decomposing complex problems into simpler

pieces● Improving clarity of the code● Reuse of code● Information hiding

functions

● Basic types of functions:

● Built-in functions

Examples are: dir()

len()

abs()

● User defined

Functions created with the ‘ def ’ keyword.

Defining functions

>>> def f(x):

… return x*x

>>> f(1)

>>> f(2)

● def is a keyword

● f is the name of the function

● x the parameter of the function

● return is a keyword; specifies what should be returned

Calling a functions

>>>def printme( str ):

>>> #"This prints a passed string into this function"

>>> print str;

>>> return;

To call function, printme

>>>printme(“HELLO”);

Output

HELLO

Modules

modules

● A module is a python file that (generally) has only

● definitions of variables, ● functions and ● classes

Importing modules

Modules in Python are used by importing them.

For example,

1] import math

This imports the math standard module.

>>>print math.sqrt(10)

Importing modules....

2]

>>>from string import whitespace

only whitespace is added to the current scope

>>>from math import *

all the elements in the math namespace are added

creating modulePython code for a module named ‘xyz’ resides in a file named file_name.py.

Ex. support.py

>>> def print_func( par ):

print "Hello : ", par

return

The import Statement:

import module1[, module2[,... moduleN]

Ex: >>>import support

>>>support.print_func(“world!”);

Doc-Strings● It’s highly recommended that all functions have

documentation

● We write a doc-string along with the function definition

>>> def avg(a, b):

… """ avg takes two numbers as input

and returns their average"""

… return (a + b)/2

>>>help(avg)

Returning multiple values

Return area and perimeter of circle, given radius

Function needs to return two values

>>>def circle(r):

… pi = 3.14

… area = pi * r * r

… perimeter = 2 * pi * r

… return area, perimeter

>>>a, p = circle(6)

>>>print a

File Handling

Basics of File Handling● Opening a file:

Use file name and second parameter-"r" is for reading, the "w" for writing and the "a" for appending.

eg.

>>>fh = open("filename_here", "r")

● Closing a file

used when the program doesn't need it more.

>>>fh.close()

functions File Handling

Functions available for reading the files: read,

readline and readlines.

● The read function reads all characters.

>>>fh = open("filename", "r")

>>>content = fh.read()

functions File Handling● The readline function reads a single line from the

file

>>>fh = open("filename", "r")

>>>content = fh.readline()

● The readlines function returns a list containing all

the lines of data in the file

>>>fh = open("filename", "r")

>>>content = fh.readlines()

Write and write lines

To write a fixed sequence of characters to a file:

>>>fh = open("hello.txt","w")

>>>fh.write("Hello World")

Write and writelines

You can write a list of strings to a file

>>>fh = open("hello.txt", "w")

>>>lines_of_text = ["a line of text",

"another line of text", "a third line"]

>>>fh.writelines(lines_of_text)

Renaming Files

Python os module provides methods that help you

perform file-processing operations, such as renaming

and deleting files.

rename() Method

>>>import os

>>>os.rename( "test1.txt", "test2.txt" )

Deleting Files

remove() Method

>>>os.remove(file_name)

OOP

Class

ClassA set of attributes that characterize any object of the class.

The attributes are data members (class variables and instance variables) and methods

Code:

class Employee:

empCount = 0

def __init__(self, name, salary):

self.name = name

self.salary = salary

Employee.empCount += 1

def displayCount(self):

print "Total Employee %d" % Employee.empCount

Class

● empCount is a class variable shared among all instances of this class. This can be accessed as Employee.empCount from inside the class or outside the class.

● first method __init__() is called class constructor or initialization method that Python calls when a new instance of this class is created.

● You declare other class methods like normal functions with the exception that the first argument to each method is self.

Class

Creating instances

emp1 = Employee("Zara", 2000)

Accessing attributes

emp1.displayEmployee()

Queries ?

thank you !