This document discusses modules, packages, and libraries in Python programming, explaining their definitions and usage. It covers how to create and import modules, utilize built-in functions, and demonstrates examples using various mathematical and string operations. Additionally, it introduces Python's standard library and external libraries like NumPy and web-related packages.
Chapter 4 discusses self-learning in programming, focusing on Python. The presentation format is PDF, with images from the public domain.
Modules are assigned to different individuals: Module 1 to Aswin, 3 and 5 to Naveen, 4 to Abhishek, and 2 to Sneha.
Describes different methods for reusing code in Python: Modules, Packages, and Libraries.
A module is a Python file (.py) containing definitions. Modules can be grouped into packages for organization.
Libraries are collections of packages. Python's Standard Library includes built-in functions and modules.
Details built-in functions like math and statistics, crucial for performing various operations in Python.
Elaborates on octal, hex, and binary systems with practical examples, showcasing Python's built-in conversion functions.
Discusses fundamental string operations such as joining and splitting, crucial for string manipulation in Python.
Functions like replace() and the concept of importing external modules for additional functionalities.
Namespaces organize identifiers in Python. Each namespace can hold functions and variables, avoiding naming conflicts.
Introduces the math module containing math functions, including examples of using the fmod and modf functions.
Describes the statistics module with functions for mean, median, and mode calculations, including real-world examples.
Highlights the use of random numbers for various applications, including generating OTPs.
Demonstrates the webbrowser module for opening web pages through Python scripts, specifying various URLs.Introduction to the urllib package for handling URLs, demonstrating how to retrieve webpage details.
Recap on modules, packages, and libraries. Focus on Python's Standard Library and the creation of custom modules.
Guides on creating and importing custom modules in Python, along with structuring them correctly.
Importance of docstrings in modules and functions for providing documentation for future reference.
Steps to create organized modules within packages, including the creation of __init__.py to initialize the package.
Explains module importation processes, namespace management, and proper usage to ensure notations are concise.
Encouragement for feedback on the usefulness of the presentation and recognition of potential mistakes.
Modules, packages, andlibraries are all different ways to reuse a code. Modules Packages libraries
7.
A module isa file containing Python definitions and statements. The file name is the module name with the suffix .py appended. A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. Look at the board. There are some functions, classes, constant and some other statements. Absolutely this is a module. Module is a collection of functions, classes, constants and other statements.
8.
Write the codeon the board in a file and save it with a name with .py suffix. It becomes a module.
9.
Yes2. I wantto write some more module files. Can you try your own modules ? Good. That is Package.
10.
A group ofmodules saved in a folder is called package. I want a package contains my own modules. Collection of modules saved in a folder, are called package.
11.
Library is acollection of packages. Suppose we write more packages about anything. It will become a library. In general, the terms package and library have the same meaning.
The Python StandardLibrary contains built-in data, functions, and many modules. All are part of the Python installation. Basic Contents of Standard Library.
print ( "10+ 20 = ", 10 + 20 ) print ( "Cube of 2 is ", 2 ** 3 ) import math print ("Square root of 25 is ", math.sqrt(25) ) print ("Cube of 2 is ", math.pow(2,3) ) print(), input(), 10 + 20 are basic operation. No need to import anything. sqrt () and pow () are defined in Math module. So need to import math modules. We use the Statement to import other modules into our programs.
16.
hex ( IntegerArgument ) oct ( Integer Argument ) int ( string / float Argument ) round ( ) Examples of Built-in Function. Accept an integer in any system and returns its octal equivalent as string. >>> oct ( 10 ) OUTPUT : ‘0o12’ Accept an integer in any system and returns its Hexadecimal equivalent as string.>>> hex ( 10 ) OUTPUT : ‘0xa’ The int() function returns integer value of given value. The given float number is rounded to specified number of decimal places. >>> int ( 3.14 ) OUTPUT : 3 >>> round ( 3.65,0 ) OUTPUT : 4.0 In oct, 1, 2, 3, 4, 5, 6, 7, What next ?
17.
oct(),hex() and bin()Functions. Don't worry. you just count 1 to 20 using for a in range(1,21) And use hex() and oct() functions. The computer will do everything for you. Octal system has only 8 digits. They are 0 to 7. after 7, write 10 for 8, 11 for 9, 12 for 10 etc. Hexadecimal system has 16 digits. They are 0 to 9 and 'a' for 10, 'b' for 11... 'f' for 15. After 15, write 10 for 16, 11 for 17, 12 for 18 etc.
18.
print ("Numbering SystemTable") print("column 1: Decimal System, col2 : Octal, col3: Hex, col4: Binary") for a in range(1,25): print(a, oct(a), hex(a), bin(a) ) Numbering System Table column 1 :Decimal System, col2 : Octal, col3: Hex, col4: Binary 1 0o1 0x1 0b1 2 0o2 0x2 0b10 3 0o3 0x3 0b11 4 0o4 0x4 0b100 5 0o5 0x5 0b101 6 0o6 0x6 0b110 16 0o20 0x10 0b10000 17 0o21 0x11 0b10001 18 0o22 0x12 0b10010 19 0o23 0x13 0b10011 20 0o24 0x14 0b10100 21 0o25 0x15 0b10101 22 0o26 0x16 0b10110 23 0o27 0x17 0b10111 24 0o30 0x18 0b11000 oct() convert given value to octal system. hex() convert given value to Hexadecimal system. bin() convert given value to Binary system. OUTPUT CODE
19.
int ( float/stringArgument ) round (float , No of Decimals) int () and round () Function. The int() function returns integer value (No decimal places) of given value. The given value may be an integer, float or a string like “123” The given float number is rounded to specified number of decimal places. If the ignoring number is above .5 ( >=.5) then the digit before it will be added by 1. >>> int ( 3.14 ) OUTPUT : 3 >>> int (10/3) OUTPUT : 3 >>> int( “123” ) OUTPUT : 123 >>> round ( 3.65 , 0 ) OUTPUT : 4.0
20.
Join the words“lion”, “tiger” and “leopard” together. Replace all "a" in “Mavelikkara” with "A". Split the line 'India is my motherland' into separate words. “anil” + “kumar” = “anil kumar”, “anil” * 3 = “anilanilanil”. These are the basic operations of a string.
21.
string.split() function splitsa string into a list. >>> x = "All knowledge is within us.“ >>> We get the list ['All', 'knowledge', 'is', 'within', 'us.'] Wrong use Right use Prefix
22.
>>> x ="Mathew,Krishna,David,Ram" >>> x.split( “,” ) We get the list ['Mathew', 'Krishna', 'David', 'Ram'] Cut when you see “n“. >>> x = "MathewnKrishnanDavidnRam" >>> x.split( “n” ) We get the list ['Mathew', 'Krishna', 'David', 'Ram'] >>> x = "MAVELIKARA" >>> x.split("A") We get the list ['M', 'VELIK', 'R', ''] "MAVELIKARA" Is it Fun?
23.
string.join() joins aset of string into a single string. Delimit string.join ( collection of string ) “,”. join ( [‘Item1’, ‘Item2’, ‘Item3’] ) ‘Item1’ ‘Item1,Item2’ 1 2 3 Item1,Item2,Item3End >>> a = ['Matthew', 'Krishna', 'David','Ram'] >>> ",".join(a) OUTPUT : 'Matthew,Krishna,David,Ram'
24.
Do it inPython. >>> a = ['Trissur','Ernakulam','Kottayam', 'Mavelikara' ] >>>> "->".join(a) 'Trissur->Ernakulam->Kottayam->Mavelikara'
25.
Can you change zebrato cobra? replace () Function. replace () Function. function replaces a phrase with another phrase. string.replace(what, with, count ) What to replace? Replace with what? How many replacement is needed.(optional) >>> ‘zebra’.replace(‘ze’,’co’) cobra zebra becomes cobra >>> ‘cobra’.replace(‘co’,’ze’) zebra cobra becomes zebra
26.
Modules such asmath, cmath, random, statistics, urllib are not an integral part of Python Interpreter. But they are part of the Python installation. If we need them, import them into our program and use them. We use "Import” statement to import Other modules into our programs. It has many forms. We will learn in detail later. Syntax is import < module Name > E.g. import math import random
27.
Python does aseries of actions when you import module, They are The code of importing modules is interprets and executed. Defined functions and variables in the module are now available. A new namespace is setup for importing modules.
28.
A namespace isa dictionary that contains the names and definitions of defined functions and variables. Names are like keys and definitions are values. It will avoid ambiguity between 2 names. I teach 2 Abhijit. one is in class XI-B and other is in class XII-A. How can I write theirname without ambiguity. class XI-B.Abhijit class XII-A.Abhijit
29.
Are not Ashwinin 12.B? Your Reg. No 675323. No Sir, Check the list of 12.A
30.
Who is കുഴിക്കാലായിൽ അബ്രഹാാം(KM Abraham) He is a member of കുഴിക്കാലായിൽ family. An object (variable, functions etc.) defined in a namespace is associated with that namespace. This way, the same identifier can be defined in multiple namespaces. >>> math. Output : 5 >>> math.pi Output :3.141592653589793 Google K.M. Abraham. Name of Namespace Object in that Namespace
31.
math math and cmathmodules covers many mathematical functions. and . More than 45 functions and 5 constants are defined in it. The use of these functions can be understood by their name itself. 2. Place (Namespace) before function name. 1. import math X = sqrt(25) Name of Namespace Object in that Namespace
>>> help(math) Traceback (mostrecent call last): File "<pyshell#1>", line 1, in <module> help(math) NameError: name 'math' is not defined >>> import math >>> help (math) Help on built-in module math: NAME math DESCRIPTION This module provides access to the mathematical functions defined by the C standard.
34.
FUNCTIONS.import math The valuewithout –ve / +ve symbol is called absolute value. Both functions give absolute value, while fabs () always give a float value, but abs () gives either float or int depending on the argument. >>> abs(-5.5) >>> abs(5) Output : 5.5 5 >>> math.fabs(5) >>> math.fabs(5.5) Output : 5.0 5.5 Returns factorial value of given Integer. Error will occur if you enter a -ve or a float value. >>> >>> math.factorial(-5) Output : 120 >>> math.factorial(5.5) Wrong useRight use Abs() is built-in function.
35.
fmod function returnsthe remainder when x is divided by y. Both x and y must be a number otherwise error will occur. What is the remainder when 10.32 is divided by 3? >>> import math >>> math.fmod(10.32,3) 1.32 What is the remainder when 11.5 is dividedby 2.5? 𝟏𝟎.𝟑𝟐 𝟑 = 3 × 3 = 9 𝑟𝑒𝑚𝑎𝑖𝑛𝑖𝑛𝑔 1.32 >>> import math >>> math.fmod(11.5,2.5) 1.5
36.
modf () separatesfractional and integer parts from a floating point number. The result will be a tuple. using multiple assignment, you can assign these 2 values in 2 variables. Can you separate the fraction and the integer parts of pi value? >>> import math >>> math.modf(math.pi) (0.14159265358979312, 3.0) >>> a , b = math.modf(math.pi) a= 0.14159265358979312, b = 3 Fractional part Integer part Tuple data type
37.
Statistics module provides23 statistical functions. Some of them are discussed here. Before using them. And call with “statistics.” prefix. mean() calculate Arithmetic mean (average) of data. >>> import statistics >>> statistics.mean( [1,2,3,4,5] ) Output : 3 >>> statistics.mean( [1,2,3,4,5,6] ) Output : 3.5 Sum of Values Count of Values Mean is calculated as
38.
The middle valueof a sorted list of numbers is called median. If the number of values is odd, it will return the middle value. If the number is even, the median is the midpoint of middle two values. >>> import statistics >>> a = [10,20,25,30,40] >>> statistics.median(a) Output : 25 a = [10, 20, 25,30, 40, 50] >>> statistics.median(a) Output : 27.5 Here ,number of values is 5, an odd No, So returns the middle value Here ,number of values is 6, an even No, So returns the average of middle two values. If the number of elements is an oddnumber thenlook up else looks down.
39.
It must bea unique items, multiple items cannot be considered as modes. Eg. MODE of [1,2,3,2,1,2] is 2 because ‘2’ occures 3 times while MODE of [1,2,3,2,1,2,1] causes ERROR because values 1 and 2 are repeated 3 times each. Output : 2 >>> statistics.mode(“MAVELIKARA") Output : ‘A' Modeof "HIPPOPOTAMUS“ is P. No mode for KANGAROO
40.
import random FUNCTIONS. Haveyou used an OTP number? Sure it shall be a random number. It has many uses in science, statistics, cryptography, gaming, gambling and other fields. When you throw a dice, it will generate a randomnumber between 1-6.
41.
If you needa 3 digit otp number, pick a random number between 100 and 999.
43.
The webbrowser module isused to display web pages through Python program. Import this module and call webbrowser.open(URL) import webbrowser url = "https://www.facebook.com/" webbrowser.open(url) webbrowser.open("https://mail.google.com/") webbrowser.open(“https://www.youtube.com/”) opens mail opens youtube
44.
>>> import webbrowser >>>webbrowser.open("https://www.slideshare.net/venugopalavarmaraja/") . Give any address (URL)here. OUTPUT OF 2 LINE CODE
45.
urllib is apackage for working with URLs. It contains several modules. Most important one is 'request'. So import urllib.request when working with URLs. Some of them mentioning below.. Urllib.request.urlopen() Open a website denoted by URL for reading. It will return a file like object called QUrl. It is used for calling following functions. QUrl.read() returns html or source code of the given url opened via Urlopen(). QUrl.getcode() Returns the http status code like 1xx,2xx ... 5xx. 2xx(200) denotes success and others have their meaning. QUrl.headers () Stores metadata about the opened url QUrl.info () Returns some information as stored by headers. QUrl.geturl () Returns the url string.
46.
import urllib.request import webbrowser u= "https://www.slideshare.net/venugopalavarmaraja/" weburl = urllib.request.urlopen(u) html = weburl.read() code = weburl.getcode() url = weburl.geturl() hd = weburl.headers inf = weburl.info() print("The URL is ", url) print("HTTP status code = ", code ) print("Header returned ", hd ) print("The info() returned ", inf ) print("Now opening the url",url ) webbrowser.open_new(url) Creating QUrl object(HTTP Request Object) Calling Functions with QUrl Object Printing Data Opening Website
47.
So far wehave learned What are modules, packages, and libraries? And familiarized with Standard Library. Libraries like Numpy, Scipy, Tkinter, Matplotlib are not part of Python Standard Libraries. So they want to download and install. We do It when we study 8th chapter. Now we are going to learn
48.
A module isa Python file that contains a collection of functions, classes, constants, and other statements.
49.
This is thefile I wrote and saved. File name is MYMOD.py. What to do next. Creating Module
50.
I opened anotherprogram file and imported MYMOD (.py). The functions written in the module are working well. Example
51.
Python does aseries of actions when you import module, They are The code of importing modules is interprets and executed. Module functions and variables are available now, but use module name as their prefix.
52.
is a dictionarythat contains the names and definitions of defined functions and variables. Names are like keys and definitions are values. It will avoid ambiguity between 2 names. I teach 2 Abhijit. one is in class XI-B and other is in class XII-A. Howcan I write their name without ambiguity. class XI-B.Abhijit class XII-A.Abhijit
54.
The CONVERSION.pymodule contains 2functions. They convert, lengthin feet and inches to meters and centimeters and vice versa Import module The screenshot on the left shows the module we created. The screenshot below shows how to import and use that module. Example 2
55.
Example 3 Now creatinganother module named MY_MATH.py. It contains 2 functions, fact(x) and add_up_to(x). Import into a new program.
56.
Structure of aModule DocString (Documentation String) Functions Constants/Variables Classes Objects Other Statements
57.
def fibi(a, b,n) : print ("Fibonacci Series is ", end="") for x in range(n): print (a+b, end=", ") a, b = b, a+b
58.
def fibo(a, b,n) : '''fibi () takes 3 arguments and generate Fibonacci series „a‟ and „b‟ are previous 2 elements. N is the number of elements we want.''' print (" Fibonacci Series is ", end="") for x in range(n): print (a+b, end=", ") a, b = b, a+b All
59.
Calling help offibo function. The documentation string is shown. Is it interesting? Details about the author, version and license can be given in the 'Dockstring'.
60.
Write this codein a Python file and save. Goto Python Shell and call help()
61.
>>> import MYMOD >>>help(MYMOD) Help on module MYMOD: NAME MYMOD DESCRIPTION This Module contains 4 functions. 1. add(a,b) -> Receives 2 Nos and return a + b. 2. sub(a,b) -> Receives 2 Nos and return a - b. 3. add(a,b) -> Receives 2 Nos and return a + b. 4. sub(a,b) -> Receives 2 Nos and return a - b. FUNCTIONS add(a, b) add(a,b) in MYMOD module accepts 2 Nos and return a + b div(a, b) div(a,b) in MYMOD module accepts 2 Nos and return "a / b mul(a, b) mul(a,b) in MYMOD module accepts 2 Nos and return "a * b sub(a, b) sub(a,b) in MYMOD module accepts 2 Nos and return a - b FILE c:usersaug 19...programspythonpython37-32mymod.py Calling help() Help () function gives documentation about functions, classes, modules.
62.
„‟‟ This modulecontains each function (), class, and data. „‟‟ months = ["Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec"] class Student : ''' Just an example of Python class''' pass def String_Date (d, m, y) : ''' Receives d, m, y as integers and return String Form ''' if d==1 or d==21 or d==31 : ………… return words + months[m-1] + ", " + str(y) Documentation Sting of Class. Function’s Documentation Sting.
63.
Impot Module &Callinghelp Documentation string of Function. Name of Module Documentation Sting of Module. Classes defined in the Module. Documentation Sting of Class. Functions defined in the Module. Data / Constatnts / Variable / Objects Path of Module File
66.
The package isa way to organize modules and other resources in a neat and tidy manner. Module_01.py Module_02.py __init__.py Package Import modules from them and use as you need.
"Underscore underscore init underscoreunderscore dot py" __init__.py How is it pronounced? Double Underscore ”Dunder” means Double Underscore. two leading and two trailing underscores
77.
__init__.py file marksfolders (directories) as Python package. This will execute automatically when the package is imported. The __init__.py file initialize the Package as its name implies. Etc..
Python does aseries of actions when you import package, Python runs the initialization file __init__.py. The modules in the package will be imported. Defined functions of module are now available. Creates unique namespace for each module within the namespace of the package.
85.
We have alreadylearned about “ import ” statement at the beginning of this chapter. With this statement, the module can be imported as whole, but only the selected objects within the module can't be imported. The entire Math module can be imported. ‘Pi' is an object defined in the math module. Partial import is not possible with the "Import" statement.
86.
But it isnot a standardstyle. Multiple Modules can be imported with one import statement. import my_package.MYMOD,my_package.MY_MATH
87.
from module importcomponent is another way for importing modules or packages. Selected components can be imported using this statement, but it is not possible with the import statement. pi (pi = 3.1415) is a constant defined in math module. You can’t import partial components. Output : 3.14… Only the required objects are imported. These are imported into the local namespace so no "namespace dot" notation is required.
88.
Only the requiredobjects are imported. These are imported into the local namespace so no "namespace dot" notation is required. It is not possible with “import” Statement. required objects are imported
89.
Python internally doesa series of actions, when we use The code of importing modules is interprets and executed. Only the imported(selected) functions and objects are available. Does not setup a namespace for the importing modules.
90.
. And use thisnickname(alias) instead of real name. The clause is used to rename importing objects. urllib! How I pronounce it. Don't worry. Rename it as ulib while importing it.
91.
The clause isused to rename importing objects. python will support unicode malayalam.
92.
The file namewill not change, but will get a nickname. Look at the red square.
93.
The wild card(character)is a letter (asterisk *) used in the sense of “all functions and objects”. The whole math module is imported into a new namespace. So objects are safe and no chance for redefining objects. All objects in the math module will be imported into the local namespace (local scope). So there is a chance to redefine many of the imported items.
94.
The base ofnatural logarithm "e" (Euler's No) is defined in math. There is a chance to redefine its value by accident.
95.
The "Import" statementloads a module into its own namespace, so you must enter the module name and dot before their components. The "from… import" statement loads the module components into the current namespace so you can use it without mentioning the module name.
Previously created package“my_package” contains 3 modules. MYMOD, MY_MATH & CONVERSION How Import Works Create namespace for the package and create other 3 namespaces under it for each modules (MYMOD, MY_MATH & CONVERSION). Each objects goes to corresponding module’s namespaces and were safe at there. created Inside it and the objects of the module were kept in them. Therefore these namespaces should be given before the object names.
99.
How from …import Works Exclude the namespace for my_package and create namespace only for other 3 modules. Therefore statements can be minimized when using module objects (components). Output : 3
101.
This initiative willmake sense if you find this presentation useful. If you find any mistakes please comment. Namasthe