# this is my_module.py
= 'Viola'
first_name = 'Akullu'
last_name
def add(number1, number2):
return number1 + number2
def multiply(number1, number2):
return number1 * number2
Python Modules
python modules, math module, json module, date time module, random module, what is a python module, why use modules
Modules
A module in Python is a python file that can contain variables, functions and classes
Why use Modules?
Modules allow us to split our code into multiple files
Instead of writing all our codes inside a sigle Python file, we can use modules
Note!
That way, our code will be easier to read, understand and maintain
Creating a Module
There is nothing so special with creating a module, simply write you Python code and save it with the .py
extension.
In this example, we have a module saved as my_module.py and it contains the following code
After that, to use my_module.py
, we need to import it.
To import, use the import
statement and the module name.
Then we can use the variables and functions in the module.
In this example, the code below is saved as main_code.py
and it imports the module.py
.
# this is main_code.py
import my_module
= my_module.first_name + my_module.last_name
full_name print('Full name:', full_name)
= my_module.add(3, 7)
summation print('Summation:', summation)
Full name: ViolaAkullu
Summation: 10
Using Aliases
We can use an alias to refer to the module
To use an alias, use the as
keyword
# this is main_code.py
import my_module as mm
= mm.first_name + mm.last_name
full_name print('Full name:', full_name)
= mm.add(3, 7)
summation print('Summation:', summation)
Full name: ViolaAkullu
Summation: 10
Importing Parts of a Module
We can choose to import only some specific parts of a module
Note! When we import a part of a module, we will be able to use its variables and functions directly
Use the from
keyword to import a part of a module.
In this example, we will import the first_name
variable and access it directly
from my_module import first_name
# now we can use it directly as
print(first_name)
Viola
The dir() Function
The dir()
function returns a list of all the variables, functions and classes available in a module
import my_module
= dir(my_module)
dir_
print(dir_)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'first_name', 'last_name', 'multiply']
Built in Modules
Python has many useful built-in modules that we can use to make coding easier.
Built-in modules can be imported without having to create them
In this example, we will import the sysconfig
module and use its get_python_version()
to return the Python version we’re using
import sysconfig
= sysconfig.get_python_version()
python_version print(python_version)
3.10
Math Module
The math module gives us access to mathematical functions
To use the math module, import it first, then we can start using it.
We can use the math module to find the square root of a number using the math.sqrt()
method
import math
= 16
number = math.sqrt(number)
number_sqrt
print('Number:', number)
print('Square root of number:', number_sqrt)
Number: 16
Square root of number: 4.0
We can use the math module to get the factorial of a number by using the math.factorial()
method
import math
= 5
number = math.factorial(number)
number_factorial
print('Number:', number)
print('Factorial:', number_factorial)
Number: 5
Factorial: 120
The math module also contains some constants like pi
and e
import math
print('e:', math.e)
print('pi:', math.pi)
e: 2.718281828459045
pi: 3.141592653589793
The math module can do those and so much more
Random Module
The random
module lets us generate a random number
As usual, to use the random
module, import it first.
We can generate a random number that falls within a specified range by using the random.randint()
method
import random
= random.randint(1,100)
random_integer print('Random Integer:', random_integer)
Random Integer: 4
We can generate numbers from a gaussian distribution with mean (mu
) as 0 and standard deviation (sigma
) as 1
= []
numbers
= 0
counter while counter < 100:
=0, sigma=1))
numbers.append(random.gauss(mu+= 1
counter
print(numbers)
[0.8310128735410047, 2.402375340413018, -1.2769617295659348, 0.7569506717477539, 1.6026026122392498, 1.4142936594217554, -0.3169917649104485, -0.07305941097531603, -0.7885301448554015, -0.0674611332298377, 0.28288857512573684, 0.08844216926370602, -1.249987094506388, 0.870793290313952, -0.6607737394803138, 0.3780605189691181, 0.20288623881856632, 0.8439702923769746, 1.6500270929422152, -0.5579247768953991, -0.3076290349937902, 0.8927675985413197, -2.3716599434459114, 0.23253728473684382, 0.01698634011714592, -1.506684284668113, -1.516156046117149, -0.7549199652372819, 0.4855840249497611, -1.9426218553454226, -0.5672748318805165, 1.7849639815888045, -0.4223703532919884, -1.4182523392919628, 0.3817982448773813, -1.2151583559744263, 0.21736913499460964, 0.0743448686041854, -0.6217874541247053, -0.05369712902089164, 0.06560332100098984, 0.5791279113149166, 1.5329264216964942, -1.5523813284095307, 0.256018716284597, 1.498941708596562, 0.6484203278916434, 0.956658998431066, -0.7469607705965761, 0.9093585267915438, -0.3301676177291813, -2.1020486475752564, -0.6324768823835674, -0.2621489739923403, 0.36805271395009337, -0.1987104858441708, -0.20226660046300027, -1.0227302328088852, 0.9440428943259802, 1.3499647213634605, 0.28655811659281705, -0.48212404896946465, 1.5732404576352244, 1.7024230857294205, -0.32802550098029193, 2.0808443667109597, 2.2783854541239874, -0.265626754707208, -0.04641950638081212, 0.7941371582079103, -0.36860553191079254, -0.9098450679735101, 1.234946260813307, -2.835066105841072, 1.3883254119625694, 1.2853299658795028, 1.178005875662903, 0.3186472037221876, -1.0006920744966419, -2.3745959188263885, 1.8440465299894964, -0.35610549619690796, 0.5857012223823791, 0.7400382246661824, 0.07225122970263118, -0.5508995490344698, -0.038356750477046286, -0.040997463659922434, 0.6802546773316889, -1.3861271290488735, 0.7275261286416534, 0.3729374034245036, -0.013616473457934613, -0.7620103036607296, 0.15556952852877587, -1.7898533901375224, -1.137248630020012, -1.71518120153122, -0.5817297506694047, -0.4035542913039588]
Date and Time
The datetime
module allows us to work with dates
As usual we have to import the datetime
module to be able to use it.
Current Date and Time
The datetime.datetime.now()
method returns the current date and time
import datetime
= datetime.datetime.now()
time_now print(time_now)
2024-05-01 08:18:09.070054
The date
Object
The date
object represents a date (year, month and day)
To create a date
object, import it from the datetime
module first.
from datetime import date
= date.today()
today print('Current date:', today)
Current date: 2024-05-01
JSON
JSON stands for JavaScript Object Notation.
JSON contains data that are sent or received to and from a server
JSON is simply a string, if follows a format similar to a Python dictionary
Example:
= "{'first_name': 'Juma','last_name': 'Shafara', 'age': 39}"
data
print(data)
{'first_name': 'Juma','last_name': 'Shafara', 'age': 39}
JSON to Dictionary
Before we can individually access the data of a JSON, we need to convert it to a Python dictionary first.
To do that, we need to import the json
module
import json
= '{"first_name": "Juma","last_name": "Shafara", "age": 39}'
data
# convert to dictionary
= json.loads(data)
data_dict
print('Fist name:',data_dict['first_name'])
print('Last name:', data_dict['last_name'])
print('Age:', data_dict['age'])
Fist name: Juma
Last name: Shafara
Age: 39
Dictionary to JSON
To convert a dictionay to JSON, use the json.dumps()
method.
import json
= {
data_dict "first_name": "Juma",
"last_name": "Shafara",
"age": 39
}
= json.dumps(data_dict) data_json