Post

Day 16 of 100 Days of Python

Learning Class and Objects

Today on Day 16, I started Classes and Objects in Python. This is the beginner program I tried to get familiar with writing classes.

1
2
3
4
5
6
7
8
9
class Character:
    def __init__(self, name, level, power):
        self.name =name
        self.level =level
        self.power = power 
    def profile(self):
        print(f"Character: {self.name} | Level: {self.level} | Power Type: {self.power}")
player1 = Character("Alex", 50, "Telekinesis")
player1.profile()

I solved a few other programs also to get familiar with the syntax of constructors.

1
2
3
4
5
6
7
8
9
10
11
12
class EmployeeProfile:
    def __init__(self,emp_id,name,depart):
        self.emp_id = emp_id
        self.name= name
        self.depart = depart

    def fetch_details(self):
        return f"EmpID: {self.emp_id} | Name: {self.name} | Dept: {self.depart}"
emp1 = EmployeeProfile("E1154", "Alex", "IT")
x = emp1.fetch_details()
print(x)

Program 3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class InventoryItem:
    def __init__(self, it_id, it_name, sc):
        self.it_id = it_id
        self.it_name = it_name
        self.sc = sc
    def up_st(self, amt):
        if amt<0:
            if -1*amt > self.sc:
                return "Insufficient stock"
        self.sc += amt
        return f"New stock: {self.sc}"
item = InventoryItem("SK81333", "Lights" , 50)
x = item.up_st(-145)
print(x)

Output for program 3:

1
2
3
New stock: 35 (for amt = 15)
New stock: 5 (for amt = -45)
Insufficient stock (for amt = -145)

Program 4: Create a class that models a system tracking a sequence of measurements, allowing updates to the data and reporting calculations based on its internal state.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class DataTracker:
    def __init__(self):
        self.records = []
    def add_record(self, value):
        self.records.append(value)
    def get_variance(self):
        l = len(self.records)
        if l < 2:
            return 0.0
        else:
            variance = 0.0
            sum_sqaured_diff =0.0
            s=0

            for num in self.records:
                s = s + num
            mean = s/l
            for num in self.records:
                sum_sqaured_diff +=  (num-mean)**2
            variance = sum_sqaured_diff/l
            return float(variance)

tracker = DataTracker()
tracker.add_record(10)
tracker.add_record(20)
tracker.add_record(30)
x = tracker.get_variance()
print(x)

Output:

1
66.66666666666667
This post is licensed under CC BY 4.0 by the author.

Trending Tags