introduction to programming with python
TRANSCRIPT
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)
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
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
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)
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 . . .
● 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, ...
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!
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
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
● 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
● 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
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" )
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.