Uploaded by i210537 Waleed Asif

(lab manual)2

advertisement
Artificial Intelligence
BS (CS) _SP_2024
Lab_02 Manual
Learning Objectives:
1.
2.
3.
4.
Regular expressions
Lambda Functions.
Lambda Functions(regular expression basis)
OOP’s Concepts (Polymorphism,Abstractions,Inheritance,Encapsulation)
Lab Manual
Basics of Python
Regular expression:
Many times a lot of data would be stored in files and we may have to pick and change only
relevant portions from a file. Even though there are string functions that allow us to
manipulate strings, when dealing with more complicated requirements, we would need more
powerful tools.
Regular expressions (regex) in Python provide a powerful way to search, manipulate, and
validate strings based on specific patterns. The re module in Python allows you to work with
regular expressions.
Python has a module named ‘re‘ for regular expressions.
Example:
Lambda Functions:
Lambdas are functions without names, in other words they are anonymous functions. They
take inputs and return outputs but do not have a name. They are shortcuts to create simple
temporary functions.
Syntax:
lambda arguments : expression
Example:
f1 = lambda x: x**2
# is equivalent to
def f2(x):
return x**2
Lambda Functions(regular expression basis):
In the context of regular expressions (regex), lambda functions can be used in languages that
support them to define custom behavior for matching patterns. For example, in Python, you
can use lambda functions with the re module to perform regex operations.
Example:
import re
# List of words
words = ["apple", "banana", "cherry", "date"]
# Filter words that start with 'a'
filtered_words = filter(lambda x: re.match("^a", x), words)
# Print the filtered words
print(list(filtered_words))
# Output: ['apple']
OOP Concepts
Python is a multi-paradigm programming language. Meaning, it supports different
programming approach. One of the most popular approach to solve a programming problem
is by creating objects. This is known as Object-Oriented Programming (OOP).
An object has two characteristics:

Attributes
Actions (behavior)

The concept of OOP in Python focuses on creating reusable code.
This concept is also known as DRY (Don't Repeat Yourself).
Object Oriented programming is a programming style that is associated with the concept of
Class, Objects and various other concepts revolving around these two, like Inheritance,
Polymorphism, Abstraction, Encapsulation etc.
Classes
A class is a blueprint for creating objects. It serves as a template that defines the attributes and
behaviors of an object.
It encapsulates data (attributes) and methods (functions) that operate on that data. Also,
promote code re-usability and maintainability.
Syntax:
class ClassName:
#class attributes and methods
def functionName:
Example:
class Dog:
def
init (self, name):
self.name = name
def bark(self):
return f"{self.name} says woof!"
dog1 = Dog("Buddy")
dog2 = Dog("Max")
print(dog1.bark())
print(dog2.bark())
Objects:
An object is an instance of a class. It is a concrete entity created based on the blueprint
defined by the class.
Inheritance:
Inheritance is a mechanism where a new class (subclass) can inherit properties and behaviors
from an existing class (superclass). This promotes code reusability and allows for the creation
of specialized classes.
Syntax:
class SubClassName(SuperClassName):
# Subclass definition
# Additional methods/attributes here
Pass
Example:
class Animal:
def speak(self):
return "Animal speaks"
class Dog(Animal):
def bark(self):
return "Dog barks"
dog = Dog()
print(dog.speak())
print(dog.bark())
Encapsulation:
Encapsulation refers to the bundling of data (attributes) and methods that operate on the data
within a single unit (class). It hides the internal state of an object from the outside world and
allows controlled access to it through methods.
Syntax:
class ClassName:
def init (self, parameters):
self. attribute_name = value # Private attribute
def get_attribute_name(self):
return self. attribute_name
Example:
class Car:
def init (self, make, model):
self. make = make
self. model = model
def get_make(self):
return self. make
def get_model(self):
return self. model
car = Car("Toyota", "Corolla")
print(car.get_make())
print(car.get_model())
Polymorphism:
Polymorphism allows objects of different classes to be treated as objects of a common super
class. It enables flexibility by allowing methods to behave differently based on the object they
operate on.
Syntax:
class SuperClassName:
def method_name(self):
# Method definition
pass
class SubClassName1(SuperClassName):
def method_name(self):
# Overridden method definition
pass
class SubClassName2(SuperClassName):
def method_name(self):
# Overridden method definition
Pass
Example:
class Animal:
def speak(self):
return "Animal speaks"
class Dog(Animal):
def speak(self):
return "Dog barks"
class Cat(Animal):
def speak(self):
return "Cat meows"
def make_sound(animal):
print(animal.speak())
dog = Dog()
cat = Cat()
make_sound(dog) # Output: Dog barks
make_sound(cat) # Output: Cat meows
Lab Task
1.
2.




3.
4.
5.
Write a lambda function to sort a list of tuples based on the second element of each tuple
in descending order.
Write a Python program that validates email addresses based on the following rules:
The email address must contain the "@" symbol.
The part before "@" can contain alphanumeric characters, dots (.), underscores (_), and
hyphens (-).
The part after "@" must contain a domain name with at least one dot (.) and only
alphanumeric characters.
The domain name must end with a valid top-level domain (e.g., .com, .org, .net).
Use lambda functions and regular expressions to filter out words from a given list that
start with a vowel (a, e, i, o, u).
Create a base class Shape with an abstract method area(). Then, create two subclasses
Rectangle and Circle that inherit from Shape. Implement the area() method in both
subclasses to calculate the area of a rectangle and a circle, respectively. Finally, create a
function calculate_total_area() that takes a list of shapes and calculates the total area of
all shapes.
Create a base class Animal with properties name and sound. Then, create two
subclasses Dog and Cat that inherit from Animal. Implement the sound property in
each subclass to return the appropriate sound ("woof" for Dog and "meow" for Cat).
Finally, create instances of both subclasses and display their names and sounds.
Additionally, create a method named make_sound() in the base class Animal that prints
the sound of the animal. Override this method in each subclass to include the animal's
name in the output.
Download