Python Certification Training https://www.edureka.co/python Agenda Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Agenda Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Agenda Introduction 01 Introduction to Advanced Python Getting Started 02 Concepts 03 Practical Approach 04 Python and Shell Looking at code to understand theory Key Concepts in Python
Python Certification Training https://www.edureka.co/python Introduction to Advanced Python Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Introduction To Advanced Python Python is an interpreted, high-level, general-purpose programming language. What is Python? Advanced: Other Languages Learning Advanced Python
Python Certification Training https://www.edureka.co/python What Is Advanced Python Computer Science5 Numerical Compute6 Databases7 Sys Programming 1 Graph Theory 2 Mathematics 3 Python spreading its wings across multiple dimensions and use-cases in many fields What is “Advanced”?
Python Certification Training https://www.edureka.co/python Introduction To System Programming Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python System Programming Sys - Module Hello Advanced Python! Import sys Provides information about constants, functions and methods of the Python interpreter. Data streams stdout stderrstdin >>> import sys >>> sys.version '2.6.5 (r265:79063, Apr 16 2010, 13:57:41) n[GCC 4.4.3]' >>> sys.version_info (2, 6, 5, 'final', 0) >>>
Python Certification Training https://www.edureka.co/python Command – Line Arguments Sys - Module Command Line argcargv #!/usr/bin/python import sys # it's easy to print this list of course: print sys.argv # or it can be iterated via a for loop: for i in range(len(sys.argv)): if i == 0: print "Function name: %s" % sys.argv[0] else: print "%d. argument: %s" % (i,sys.argv[i]) $ python arguments.py arg1 arg2 ['arguments.py', 'arg1', 'arg2'] Function name: arguments.py 1. argument: arg1 2. argument: arg2 $
Python Certification Training https://www.edureka.co/python Changing Output Behaviour Sys - Module Python Interactive Mode Get Output Write expression >>> import sys >>> x = 42 >>> x 42 >>> import sys >>> def my_display(x): ... print "out: ", ... print x ... >>> sys.displayhook = my_display >>> x out: 42 >>> >>> print x 42 Behaviour of print() not changed
Python Certification Training https://www.edureka.co/python Standard Data Streams Sys - Module >>> import sys >>> for i in (sys.stdin, sys.stdout, sys.stderr): ... print(i) ... ', mode 'w' at 0x7f3397a2c150> ', mode 'w' at 0x7f3397a2c1e0> >>> SHELLstdin stdout stderr >>> import sys >>> print "Going via stdout" Going via stdout >>> sys.stdout.write("Another way to do it!n") Another way to do it! >>> x = raw_input("read value via stdin: ") read value via stdin: 42 >>> print x 42 >>> print "type in value: ", ; sys.stdin.readline()[:-1] type in value: 42 '42' >>>
Python Certification Training https://www.edureka.co/python Redirections Sys - Module import sys print("Coming through stdout") # stdout is saved save_stdout = sys.stdout fh = open("test.txt","w") sys.stdout = fh print("This line goes to test.txt") # return to normal: sys.stdout = save_stdout fh.close() SHELLstdin stdout stderr import sys save_stderr = sys.stderr fh = open("errors.txt","w") sys.stderr = fh x = 10 / 0 # return to normal: sys.stderr = save_stderr fh.close()
Python Certification Training https://www.edureka.co/python Variables & Constants In Sys Module Sys - Module byteorder executable maxint modules path platform Variables Constants
Python Certification Training https://www.edureka.co/python Python And Shell Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Python And Shell A piece of software that provides an interface for a user to some other software or the operating system What is “Shell”? SHELL GUICUI Bourne-Shell C-Shell Bash Shell
Python Certification Training https://www.edureka.co/python System Programming The activity of programming system components or system software What is “SP”? “System focussed programming” Modules sys os Simple and clear Well structured Highly flexible Advantages
Python Certification Training https://www.edureka.co/python The ‘os’ Module The os module allows platform independent programming by providing abstract methods What is “os” module? Executing Shell scripts with os.system() import os def getch(): os.system("bash -c "read -n 1"") getch() from msvcrt import getch
Python Certification Training https://www.edureka.co/python The ‘os’ Module Executing Shell scripts with os.system() import os, platform if platform.system() == "Windows": import msvcrt def getch(): if platform.system() == "Linux": os.system("bash -c "read -n 1"") else: msvcrt.getch() print("Type a key!") getch() print("Okay") Subprocess Module os.system os.spawn* os.popen*
Python Certification Training https://www.edureka.co/python Forking In Python Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Fork In Python What is Forking? import os def child(): print('nA new child ', os.getpid()) os._exit(0) def parent(): while True: newpid = os.fork() if newpid == 0: child() else: pids = (os.getpid(), newpid) print("parent: %d, child: %dn" % pids) reply = input("q for quit / c for new fork") if reply == 'c': continue else: break parent() Process Copy of Process Parent Child Starting independent processes with fork() exec*() function
Python Certification Training https://www.edureka.co/python The exec*() Functions exec*() functions • os.execl(path, arg0, arg1, ...) • os.execle(path, arg0, arg1, ..., env) • os.execlp(file, arg0, arg1, ...) • os.execlpe(file, arg0, arg1, ..., env) • os.execv(path, args) • os.execve(path, args, env) • os.execvp(file, args) • os.execvpe(file, args, env)
Python Certification Training https://www.edureka.co/python Threads In Python Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python What Is A Thread? The smallest unit that can be scheduled in an operating systemWhat is a thread? How to create a thread? By forking a computer program in two or more parallel tasks Types of threads Kernel threads User threads Implemented in kernel NOT implemented in kernel
Python Certification Training https://www.edureka.co/python What Is A Thread? Global Variables Process Local variables Code THREAD Local variables Code THREAD Local variables Code THREAD
Python Certification Training https://www.edureka.co/python The Thread Module from thread import start_new_thread def heron(a): """Calculates the square root of a""" eps = 0.0000001 old = 1 new = 1 while True: old,new = new, (new + a/new) / 2.0 print old, new if abs(new - old) < eps: break return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) c = raw_input("Type something to quit.") Example
Python Certification Training https://www.edureka.co/python The Thread Module from thread import start_new_thread num_threads = 0 def heron(a): global num_threads num_threads += 1 # code has been left out, see above num_threads -= 1 return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) start_new_thread(heron,(17334,)) while num_threads > 0: pass Previous example with counters for the threads • Reading the value of num_thread • A new int instance will be incremented or decremented by 1 • the new value has to be assigned to num_threads
Python Certification Training https://www.edureka.co/python The Thread Module from thread import start_new_thread, allocate_lock num_threads = 0 thread_started = False lock = allocate_lock() def heron(a): global num_threads, thread_started lock.acquire() num_threads += 1 thread_started = True lock.release() ... lock.acquire() num_threads -= 1 lock.release() return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) while not thread_started: pass while num_threads > 0: pass The solution
Python Certification Training https://www.edureka.co/python Threading Module import time from threading import Thread def sleeper(i): print "thread %d sleeps for 5 seconds" % i time.sleep(5) print "thread %d woke up" % i for i in range(10): t = Thread(target=sleeper, args=(i,)) t.start() Example The Thread of the example doesn't do a lot, essentially it just sleeps for 5 seconds and then prints out a message:
Python Certification Training https://www.edureka.co/python Threading Module thread 0 sleeps for 5 seconds thread 1 sleeps for 5 seconds thread 2 sleeps for 5 seconds thread 3 sleeps for 5 seconds thread 4 sleeps for 5 seconds thread 5 sleeps for 5 seconds thread 6 sleeps for 5 seconds thread 7 sleeps for 5 seconds thread 8 sleeps for 5 seconds thread 9 sleeps for 5 seconds thread 1 woke up thread 0 woke up thread 3 woke up thread 2 woke up thread 5 woke up thread 9 woke up thread 8 woke up thread 7 woke up thread 6 woke up thread 4 woke up
Python Certification Training https://www.edureka.co/python Pipes In Python Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python What Are Pipes Introducing modularity in the program to serve one instance output as the input to another instance and so on till solution is achieved What are pipes? Two kinds of pipes Named PipesAnonymous Pipes Exist solely within processes and are usually used in combination with forks P1 P2 P3 P4
Python Certification Training https://www.edureka.co/python Pipes – A Classic Example 99 Bottles of Beer Drinking is injurious to health Ninety-nine bottles of beer on the wall, Ninety-nine bottles of beer. Take one down, pass it around, Ninety-eight bottles of beer on the wall. Lyrics of the song:
Python Certification Training https://www.edureka.co/python Named Pipes Called FIFOs – Creating pipes which are implemented as files.What are named pipes? First In – First Out A process reads from and writes to such a pipe as if it were a regular file. Sometimes more than one process write to such a pipe but only one process reads from it.
Python Certification Training https://www.edureka.co/python Conclusion Advanced Python Tutorial
Python Certification Training https://www.edureka.co/python Conclusion Advanced Python, yay!
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programming Training | Edureka

Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programming Training | Edureka

  • 1.
    Python Certification Traininghttps://www.edureka.co/python Agenda Advanced Python Tutorial
  • 2.
    Python Certification Traininghttps://www.edureka.co/python Agenda Advanced Python Tutorial
  • 3.
    Python Certification Traininghttps://www.edureka.co/python Agenda Introduction 01 Introduction to Advanced Python Getting Started 02 Concepts 03 Practical Approach 04 Python and Shell Looking at code to understand theory Key Concepts in Python
  • 4.
    Python Certification Traininghttps://www.edureka.co/python Introduction to Advanced Python Advanced Python Tutorial
  • 5.
    Python Certification Traininghttps://www.edureka.co/python Introduction To Advanced Python Python is an interpreted, high-level, general-purpose programming language. What is Python? Advanced: Other Languages Learning Advanced Python
  • 6.
    Python Certification Traininghttps://www.edureka.co/python What Is Advanced Python Computer Science5 Numerical Compute6 Databases7 Sys Programming 1 Graph Theory 2 Mathematics 3 Python spreading its wings across multiple dimensions and use-cases in many fields What is “Advanced”?
  • 7.
    Python Certification Traininghttps://www.edureka.co/python Introduction To System Programming Advanced Python Tutorial
  • 8.
    Python Certification Traininghttps://www.edureka.co/python System Programming Sys - Module Hello Advanced Python! Import sys Provides information about constants, functions and methods of the Python interpreter. Data streams stdout stderrstdin >>> import sys >>> sys.version '2.6.5 (r265:79063, Apr 16 2010, 13:57:41) n[GCC 4.4.3]' >>> sys.version_info (2, 6, 5, 'final', 0) >>>
  • 9.
    Python Certification Traininghttps://www.edureka.co/python Command – Line Arguments Sys - Module Command Line argcargv #!/usr/bin/python import sys # it's easy to print this list of course: print sys.argv # or it can be iterated via a for loop: for i in range(len(sys.argv)): if i == 0: print "Function name: %s" % sys.argv[0] else: print "%d. argument: %s" % (i,sys.argv[i]) $ python arguments.py arg1 arg2 ['arguments.py', 'arg1', 'arg2'] Function name: arguments.py 1. argument: arg1 2. argument: arg2 $
  • 10.
    Python Certification Traininghttps://www.edureka.co/python Changing Output Behaviour Sys - Module Python Interactive Mode Get Output Write expression >>> import sys >>> x = 42 >>> x 42 >>> import sys >>> def my_display(x): ... print "out: ", ... print x ... >>> sys.displayhook = my_display >>> x out: 42 >>> >>> print x 42 Behaviour of print() not changed
  • 11.
    Python Certification Traininghttps://www.edureka.co/python Standard Data Streams Sys - Module >>> import sys >>> for i in (sys.stdin, sys.stdout, sys.stderr): ... print(i) ... ', mode 'w' at 0x7f3397a2c150> ', mode 'w' at 0x7f3397a2c1e0> >>> SHELLstdin stdout stderr >>> import sys >>> print "Going via stdout" Going via stdout >>> sys.stdout.write("Another way to do it!n") Another way to do it! >>> x = raw_input("read value via stdin: ") read value via stdin: 42 >>> print x 42 >>> print "type in value: ", ; sys.stdin.readline()[:-1] type in value: 42 '42' >>>
  • 12.
    Python Certification Traininghttps://www.edureka.co/python Redirections Sys - Module import sys print("Coming through stdout") # stdout is saved save_stdout = sys.stdout fh = open("test.txt","w") sys.stdout = fh print("This line goes to test.txt") # return to normal: sys.stdout = save_stdout fh.close() SHELLstdin stdout stderr import sys save_stderr = sys.stderr fh = open("errors.txt","w") sys.stderr = fh x = 10 / 0 # return to normal: sys.stderr = save_stderr fh.close()
  • 13.
    Python Certification Traininghttps://www.edureka.co/python Variables & Constants In Sys Module Sys - Module byteorder executable maxint modules path platform Variables Constants
  • 14.
    Python Certification Traininghttps://www.edureka.co/python Python And Shell Advanced Python Tutorial
  • 15.
    Python Certification Traininghttps://www.edureka.co/python Python And Shell A piece of software that provides an interface for a user to some other software or the operating system What is “Shell”? SHELL GUICUI Bourne-Shell C-Shell Bash Shell
  • 16.
    Python Certification Traininghttps://www.edureka.co/python System Programming The activity of programming system components or system software What is “SP”? “System focussed programming” Modules sys os Simple and clear Well structured Highly flexible Advantages
  • 17.
    Python Certification Traininghttps://www.edureka.co/python The ‘os’ Module The os module allows platform independent programming by providing abstract methods What is “os” module? Executing Shell scripts with os.system() import os def getch(): os.system("bash -c "read -n 1"") getch() from msvcrt import getch
  • 18.
    Python Certification Traininghttps://www.edureka.co/python The ‘os’ Module Executing Shell scripts with os.system() import os, platform if platform.system() == "Windows": import msvcrt def getch(): if platform.system() == "Linux": os.system("bash -c "read -n 1"") else: msvcrt.getch() print("Type a key!") getch() print("Okay") Subprocess Module os.system os.spawn* os.popen*
  • 19.
    Python Certification Traininghttps://www.edureka.co/python Forking In Python Advanced Python Tutorial
  • 20.
    Python Certification Traininghttps://www.edureka.co/python Fork In Python What is Forking? import os def child(): print('nA new child ', os.getpid()) os._exit(0) def parent(): while True: newpid = os.fork() if newpid == 0: child() else: pids = (os.getpid(), newpid) print("parent: %d, child: %dn" % pids) reply = input("q for quit / c for new fork") if reply == 'c': continue else: break parent() Process Copy of Process Parent Child Starting independent processes with fork() exec*() function
  • 21.
    Python Certification Traininghttps://www.edureka.co/python The exec*() Functions exec*() functions • os.execl(path, arg0, arg1, ...) • os.execle(path, arg0, arg1, ..., env) • os.execlp(file, arg0, arg1, ...) • os.execlpe(file, arg0, arg1, ..., env) • os.execv(path, args) • os.execve(path, args, env) • os.execvp(file, args) • os.execvpe(file, args, env)
  • 22.
    Python Certification Traininghttps://www.edureka.co/python Threads In Python Advanced Python Tutorial
  • 23.
    Python Certification Traininghttps://www.edureka.co/python What Is A Thread? The smallest unit that can be scheduled in an operating systemWhat is a thread? How to create a thread? By forking a computer program in two or more parallel tasks Types of threads Kernel threads User threads Implemented in kernel NOT implemented in kernel
  • 24.
    Python Certification Traininghttps://www.edureka.co/python What Is A Thread? Global Variables Process Local variables Code THREAD Local variables Code THREAD Local variables Code THREAD
  • 25.
    Python Certification Traininghttps://www.edureka.co/python The Thread Module from thread import start_new_thread def heron(a): """Calculates the square root of a""" eps = 0.0000001 old = 1 new = 1 while True: old,new = new, (new + a/new) / 2.0 print old, new if abs(new - old) < eps: break return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) c = raw_input("Type something to quit.") Example
  • 26.
    Python Certification Traininghttps://www.edureka.co/python The Thread Module from thread import start_new_thread num_threads = 0 def heron(a): global num_threads num_threads += 1 # code has been left out, see above num_threads -= 1 return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) start_new_thread(heron,(17334,)) while num_threads > 0: pass Previous example with counters for the threads • Reading the value of num_thread • A new int instance will be incremented or decremented by 1 • the new value has to be assigned to num_threads
  • 27.
    Python Certification Traininghttps://www.edureka.co/python The Thread Module from thread import start_new_thread, allocate_lock num_threads = 0 thread_started = False lock = allocate_lock() def heron(a): global num_threads, thread_started lock.acquire() num_threads += 1 thread_started = True lock.release() ... lock.acquire() num_threads -= 1 lock.release() return new start_new_thread(heron,(99,)) start_new_thread(heron,(999,)) start_new_thread(heron,(1733,)) while not thread_started: pass while num_threads > 0: pass The solution
  • 28.
    Python Certification Traininghttps://www.edureka.co/python Threading Module import time from threading import Thread def sleeper(i): print "thread %d sleeps for 5 seconds" % i time.sleep(5) print "thread %d woke up" % i for i in range(10): t = Thread(target=sleeper, args=(i,)) t.start() Example The Thread of the example doesn't do a lot, essentially it just sleeps for 5 seconds and then prints out a message:
  • 29.
    Python Certification Traininghttps://www.edureka.co/python Threading Module thread 0 sleeps for 5 seconds thread 1 sleeps for 5 seconds thread 2 sleeps for 5 seconds thread 3 sleeps for 5 seconds thread 4 sleeps for 5 seconds thread 5 sleeps for 5 seconds thread 6 sleeps for 5 seconds thread 7 sleeps for 5 seconds thread 8 sleeps for 5 seconds thread 9 sleeps for 5 seconds thread 1 woke up thread 0 woke up thread 3 woke up thread 2 woke up thread 5 woke up thread 9 woke up thread 8 woke up thread 7 woke up thread 6 woke up thread 4 woke up
  • 30.
    Python Certification Traininghttps://www.edureka.co/python Pipes In Python Advanced Python Tutorial
  • 31.
    Python Certification Traininghttps://www.edureka.co/python What Are Pipes Introducing modularity in the program to serve one instance output as the input to another instance and so on till solution is achieved What are pipes? Two kinds of pipes Named PipesAnonymous Pipes Exist solely within processes and are usually used in combination with forks P1 P2 P3 P4
  • 32.
    Python Certification Traininghttps://www.edureka.co/python Pipes – A Classic Example 99 Bottles of Beer Drinking is injurious to health Ninety-nine bottles of beer on the wall, Ninety-nine bottles of beer. Take one down, pass it around, Ninety-eight bottles of beer on the wall. Lyrics of the song:
  • 33.
    Python Certification Traininghttps://www.edureka.co/python Named Pipes Called FIFOs – Creating pipes which are implemented as files.What are named pipes? First In – First Out A process reads from and writes to such a pipe as if it were a regular file. Sometimes more than one process write to such a pipe but only one process reads from it.
  • 34.
    Python Certification Traininghttps://www.edureka.co/python Conclusion Advanced Python Tutorial
  • 35.
    Python Certification Traininghttps://www.edureka.co/python Conclusion Advanced Python, yay!