[PYTHON CONCEPTS]
Advanced concepts
OCTOBER 7, 2015
P.D.MANUSHA DILAN
manushadilan@gmail.com
[PYTHON CONCEPTS] | MANUSHA
1 | P a g e
Contents
I. #re Module ……………………………………………………………………………… 2
a. #match
b. #search
c. #findall
d. #sub
II. #lambda functions …………………………………………………………… 5
a. #map
b. #filter
III. #threading .…………………………………………………………………………… 8
[PYTHON CONCEPTS] | MANUSHA
2 | P a g e
#re Module
using for regular expressions
#match
#match with first location of the string
#variable=re.match(pattern,String,optional flags)
import re
mystr="Good programmer should learn Python2,Python3,Perl,Java,Javascript and C"
a=re.match("Good",mystr)
print(a)
<_sre.SRE_Match object; span=(0, 4), match='Good'>
print(type(a))
<class '_sre.SRE_Match'>
print(a.group())
Good
x=re.match("abc",mystr)
print(x)
None
[PYTHON CONCEPTS] | MANUSHA
3 | P a g e
a=re.match("good",mystr,re.I)
print(a)
print(a.group())
<_sre.SRE_Match object; span=(0, 4), match='Good'>
Good
#search
#search the entire string
#variable=re.search(pattern,String,optional flags)
arp="22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L"
s=re.search(r"(.+?) +(d) +(.+?)s{2,}(w)*",arp)
print(s.group(1))
22.22.22.1
s1=re.search(r"(.+) +(d) +(.+?)s{2,}(w)*",arp)
print(s1.group(1))
print(s.group(2))
print(s.group(3))
print(s.group(4))
22.22.22.1
0
b4:a9:5a:ff:c8:45 VLAN#222
L
[PYTHON CONCEPTS] | MANUSHA
4 | P a g e
print(s.group())
print(s.group(0))
print(s.groups())
22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L
22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L
('22.22.22.1', '0', 'b4:a9:5a:ff:c8:45 VLAN#222', 'L')
#findall
f=re.findall(r"dd.d{2}.[0-9][0-9].[0-9]{1,3}",arp)
print(f)
print(type(f))
['22.22.22.1']
<class 'list'>
f=re.findall(r"(dd).(d{2}).([0-9][0-9]).([0-9]{1,3})",arp)
print(f)
[('22', '22', '22', '1')]
arp2="22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L 10.10.10.10"
f=re.findall(r"(dd).(d{2}).([0-9][0-9]).([0-9]{1,3})",arp2)
print(f)
[('22', '22', '22', '1'), ('10', '10', '10', '10')]
#sub
b=re.sub(r"d","7",arp2)
print(b)
77.77.77.7 7 b7:a7:7a:ff:c7:77 VLAN#777 L 77.77.77.77
[PYTHON CONCEPTS] | MANUSHA
5 | P a g e
#lambda functions (anonymous functions)
lambda arg1,arg2,....,argN: expression using arguments
a=lambda x,y:x*y
print(a)
print(type(a))
<function <lambda> at 0x03C8C8A0>
<class 'function'>
print(a(2,10))
20
b=lambda list:[x*y for x in range(10) for y in range(5)]+list
print(b([44,66,67]))
[0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8, 0, 3, 6, 9, 12, 0, 4, 8, 12, 16, 0, 5, 10, 15, 20, 0, 6, 12,
18, 24, 0, 7, 14, 21, 28, 0, 8, 16, 24, 32, 0, 9, 18, 27, 36, 44, 66, 67]
[PYTHON CONCEPTS] | MANUSHA
6 | P a g e
#map
#map(function, sequence)
#return the result of function applied to all items in sequence
def product10(a):
return a*10
list1=range(10)
m=map(product10,list1)
print(m)
<map object at 0x03C64CB0>
for i in m:
print(i)
0 10 20 30 40 50 60 70 80 90
m2=map((lambda a:a*10),list1)
for i in m2:
print(i)
10 20 30 40 50 60 70 80 90
[PYTHON CONCEPTS] | MANUSHA
7 | P a g e
#filter
#filter(function, sequence)
#return all items in sequence for which function is true
f=filter(lambda a:a>5,list1)
for i in f:
print(i)
6 7 8 9
[PYTHON CONCEPTS] | MANUSHA
8 | P a g e
#threading
basic concept of threading
import threading
import time
def myfunc():
print("Start a thread !n")
time.sleep(3)
print("End a thread !!n")
threads=[]
for i in range(5):
th=threading.Thread(target=myfunc)
th.start()
threads.append(th)
for th in threads:
th.join()
Start a thread !
Start a thread !
Start a thread !
Start a thread !
Start a thread !
[PYTHON CONCEPTS] | MANUSHA
9 | P a g e
End a thread !!
End a thread !!
End a thread !!
End a thread !!
End a thread !!
#without threading
import time
def myfunc():
print("Start a thread !n")
time.sleep(3)
print("End a thread !!n")
for i in range(5):
myfunc()
Start a thread !
End a thread !!
Start a thread !
End a thread !!
Start a thread !
End a thread !!
Start a thread !
End a thread !!
Start a thread !
End a thread !!

Advanced python concepts

  • 1.
    [PYTHON CONCEPTS] Advanced concepts OCTOBER7, 2015 P.D.MANUSHA DILAN manushadilan@gmail.com
  • 2.
    [PYTHON CONCEPTS] |MANUSHA 1 | P a g e Contents I. #re Module ……………………………………………………………………………… 2 a. #match b. #search c. #findall d. #sub II. #lambda functions …………………………………………………………… 5 a. #map b. #filter III. #threading .…………………………………………………………………………… 8
  • 3.
    [PYTHON CONCEPTS] |MANUSHA 2 | P a g e #re Module using for regular expressions #match #match with first location of the string #variable=re.match(pattern,String,optional flags) import re mystr="Good programmer should learn Python2,Python3,Perl,Java,Javascript and C" a=re.match("Good",mystr) print(a) <_sre.SRE_Match object; span=(0, 4), match='Good'> print(type(a)) <class '_sre.SRE_Match'> print(a.group()) Good x=re.match("abc",mystr) print(x) None
  • 4.
    [PYTHON CONCEPTS] |MANUSHA 3 | P a g e a=re.match("good",mystr,re.I) print(a) print(a.group()) <_sre.SRE_Match object; span=(0, 4), match='Good'> Good #search #search the entire string #variable=re.search(pattern,String,optional flags) arp="22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L" s=re.search(r"(.+?) +(d) +(.+?)s{2,}(w)*",arp) print(s.group(1)) 22.22.22.1 s1=re.search(r"(.+) +(d) +(.+?)s{2,}(w)*",arp) print(s1.group(1)) print(s.group(2)) print(s.group(3)) print(s.group(4)) 22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L
  • 5.
    [PYTHON CONCEPTS] |MANUSHA 4 | P a g e print(s.group()) print(s.group(0)) print(s.groups()) 22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L 22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L ('22.22.22.1', '0', 'b4:a9:5a:ff:c8:45 VLAN#222', 'L') #findall f=re.findall(r"dd.d{2}.[0-9][0-9].[0-9]{1,3}",arp) print(f) print(type(f)) ['22.22.22.1'] <class 'list'> f=re.findall(r"(dd).(d{2}).([0-9][0-9]).([0-9]{1,3})",arp) print(f) [('22', '22', '22', '1')] arp2="22.22.22.1 0 b4:a9:5a:ff:c8:45 VLAN#222 L 10.10.10.10" f=re.findall(r"(dd).(d{2}).([0-9][0-9]).([0-9]{1,3})",arp2) print(f) [('22', '22', '22', '1'), ('10', '10', '10', '10')] #sub b=re.sub(r"d","7",arp2) print(b) 77.77.77.7 7 b7:a7:7a:ff:c7:77 VLAN#777 L 77.77.77.77
  • 6.
    [PYTHON CONCEPTS] |MANUSHA 5 | P a g e #lambda functions (anonymous functions) lambda arg1,arg2,....,argN: expression using arguments a=lambda x,y:x*y print(a) print(type(a)) <function <lambda> at 0x03C8C8A0> <class 'function'> print(a(2,10)) 20 b=lambda list:[x*y for x in range(10) for y in range(5)]+list print(b([44,66,67])) [0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8, 0, 3, 6, 9, 12, 0, 4, 8, 12, 16, 0, 5, 10, 15, 20, 0, 6, 12, 18, 24, 0, 7, 14, 21, 28, 0, 8, 16, 24, 32, 0, 9, 18, 27, 36, 44, 66, 67]
  • 7.
    [PYTHON CONCEPTS] |MANUSHA 6 | P a g e #map #map(function, sequence) #return the result of function applied to all items in sequence def product10(a): return a*10 list1=range(10) m=map(product10,list1) print(m) <map object at 0x03C64CB0> for i in m: print(i) 0 10 20 30 40 50 60 70 80 90 m2=map((lambda a:a*10),list1) for i in m2: print(i) 10 20 30 40 50 60 70 80 90
  • 8.
    [PYTHON CONCEPTS] |MANUSHA 7 | P a g e #filter #filter(function, sequence) #return all items in sequence for which function is true f=filter(lambda a:a>5,list1) for i in f: print(i) 6 7 8 9
  • 9.
    [PYTHON CONCEPTS] |MANUSHA 8 | P a g e #threading basic concept of threading import threading import time def myfunc(): print("Start a thread !n") time.sleep(3) print("End a thread !!n") threads=[] for i in range(5): th=threading.Thread(target=myfunc) th.start() threads.append(th) for th in threads: th.join() Start a thread ! Start a thread ! Start a thread ! Start a thread ! Start a thread !
  • 10.
    [PYTHON CONCEPTS] |MANUSHA 9 | P a g e End a thread !! End a thread !! End a thread !! End a thread !! End a thread !! #without threading import time def myfunc(): print("Start a thread !n") time.sleep(3) print("End a thread !!n") for i in range(5): myfunc() Start a thread ! End a thread !! Start a thread ! End a thread !! Start a thread ! End a thread !! Start a thread ! End a thread !! Start a thread ! End a thread !!