Python OOP Exercise - Classes and Objects Exercises
Python OOP Exercise - Classes and Objects Exercises
Python Programming
Learn Python Exercises Quizzes Code Editor Tricks
Home » Python Exercises » Python Object-Oriented Programming (OOP) Exercise: Classes and Objects
Posted In
Exercises
Python Python Exercises Python
Object-Oriented Programming Python Object-Oriented Programming (OOP)
(OOP) Exercise: Classes and Objects Exercises
Tweet F share in share P Pin
Updated on: December 8, 2021 | + 50 Comments
Python Exercises
This Object-Oriented Programming (OOP) exercise aims to help you to learn and practice OOP
Python Exercises Home concepts. All questions are tested on Python 3.
Basic Exercise for Beginners
Python Object-oriented programming (OOP) is based on the concept of “objects,” which can
Input and Output Exercise
contain data and code: data in the form of instance variables (often known as attributes or
Loop Exercise
properties), and code, in the form method. I.e., Using OOP, we encapsulate related properties and
Functions Exercise
behaviors into individual objects.
String Exercise
List Exercise
This OOP classes and objects exercise includes 8 different programs, questions, and challenges. All
Dictionary Exercise
solutions are tested on Python 3.
Set Exercise
Tuple Exercise This OOP exercise covers questions on the following topics:
NumPy Exercise Extend the functionality of Parent Classes using Child class
Pandas Exercise Object checking
Matplotlib Exercise
When you complete each question, you get more familiar with the Python OOP. Let us know if you
Python Database Exercise
have any alternative solutions. It will help other developers.
All Python Topics Use Online Code Editor to solve exercise questions.
Write a Python program to create a Vehicle class with max_speed and mileage instance attributes.
Refer:
+ Show Solution
class Vehicle:
def __init__(self, max_speed, mileage):
self.max_speed = max_speed
self.mileage = mileage
Run
+ Show Solution
class Vehicle:
pass
Run
OOP Exercise 3: Create a child class Bus that will inherit all of the
variables and methods of the Vehicle class
Given:
class Vehicle:
Create a Bus object that will inherit all of the variables and methods of the parent Vehicle class and
display it.
Expected Output:
+ Show Solution
class Vehicle:
class Bus(Vehicle):
pass
Run
Given:
Create a Bus class that inherits from the Vehicle class. Give the capacity argument of
Bus.seating_capacity() a default value of 50.
class Vehicle:
def __init__(self, name, max_speed, mileage):
self.name = name
self.max_speed = max_speed
self.mileage = mileage
Expected Output:
Refer:
PYnative Inheritance in Python
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
Polymorphism in Python
+ Show Hint
Next, use default method argument in the seating_capacity() method definition of a bus
class.
+ Show Solution
class Vehicle:
def __init__(self, name, max_speed, mileage):
self.name = name
self.max_speed = max_speed
self.mileage = mileage
class Bus(Vehicle):
# assign default value to capacity
def seating_capacity(self, capacity=50):
return super().seating_capacity(capacity=50)
Run
OOP Exercise 5: Define a property that must have the same value for
every class instance (object)
Define a class attribute”color” with a default value white. I.e., Every Vehicle should be white.
class Vehicle:
class Bus(Vehicle):
pass
class Car(Vehicle):
pass
Expected Output:
PYnative Learn
Color: White, Vehicle name: School Volvo, Speed: 180, Python
Mileage: 12 Exercises Quizzes Code Editor Tricks
Python Programming
Color: White, Vehicle name: Audi Q5, Speed: 240, Mileage: 18
+ Show Hint
+ Show Solution
Variables created in .__init__() are called instance variables. An instance variable’s value is
specific to a particular instance of the class. For example, in the solution, All Vehicle objects have a
name and a max_speed, but the name and max_speed variables’ values will vary depending on the
Vehicle instance.
On the other hand, the class variable is shared between all class instances. You can define a
class attribute by assigning a value to a variable name outside of .__init__() .
class Vehicle:
# Class attribute
color = "White"
class Bus(Vehicle):
pass
class Car(Vehicle):
pass
Run
Given:
Create a Bus child class that inherits from the Vehicle class. The default fare charge of any vehicle is
seating capacity * 100. If Vehicle is Bus instance, we need to add an extra 10% on full fare as a
maintenance charge. So total fare for bus instance will become the final amount = total fare +
10% of the total fare.
Note: The bus seating capacity is 50. so the final fare amount should be 5500. You need to override
the fare() method of a Vehicle class in Bus class.
PYnative Use the following code for your parent Vehicle class. We need to access the parent class from inside
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
a method of a child class.
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
pass
Expected Output:
+ Show Solution
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def fare(self):
amount = super().fare()
amount += amount * 10 / 100
return amount
Run
Write a program to determine which class a given Bus object belongs to.
Given:
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
PYnative self.capacity = capacity
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
class Bus(Vehicle):
pass
+ Show Hint
+ Show Solution
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
class Bus(Vehicle):
pass
Run
Given:
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
class Bus(Vehicle):
pass
+ Show Hint
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
class Bus(Vehicle):
pass
Run
Did you find this page helpful? Let others know about it. Sharing helps me continue to create
free Python resources.
About Vishal
Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.
Comments
PYnative Kavindu says
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming A U G U S T 1 9 , 2 0 2 3 AT 3 : 4 5 P M
class Vehicle:
def __init__(self, max_speed, mileage):
self.max_speed = max_speed
self.mileage = mileage
class Vehicle:
def __init__(self, name, max_speed, mileage):
self.name = name
self.max_speed = max_speed
self.mileage = mileage
class Bus(Vehicle):
# assign default value to capacity
def seating_capacity(self, capacity=50):
return super().seating_capacity(capacity=50)
class Vehicle:
# Class attribute
colour = “White”
class Bus(Vehicle):
pass
class Car(Vehicle):
pass
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
PYnative class Bus(Vehicle):
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
def fare(self):
return 1.1*self.capacity*100
color = “white”
capacity = 1
fare = capacity * 100
class Vehicle:
def __init__(self, name, max_speed, mileage, capacity):
self.max_speed = max_speed
self.mileage = mileage
self.name = name
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def __init__(self, name, max_speed, mileage, capacity):
super().__init__(name, max_speed, mileage, capacity)
def fare(self):
#return Vehicle.fare(self) * 10 / 100 + Vehicle.fare(self) or
amount = super().fare()
amount += amount * 10 / 100
return amount
print(bus1.fare())
REPLY
#Exercise 3
class Vehicle:
PYnative def __init__(self ,Max_speed, Mileage):
Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
self.Max_speed = Max_speed
self.Mileage = Mileage
Adrian says
F E B R U A R Y 2 8 , 2 0 2 3 AT 1 0 : 1 0 P M
About exercise 4:
in line -> return super().seating_capacity(capacity=50)
REPLY
Reef says
O C T O B E R 1 1 , 2 0 2 3 AT 1 : 4 7 A M
REPLY
Dealer says
J A N U A R Y 2 0 , 2 0 2 3 AT 7 : 2 8 P M
class Vehicle:
self.name = name
self.mileage = mileage
self.capacity = capacity
PYnative Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
class Bus(Vehicle):
@staticmethod
def which_class():
return __class__.__name__
print(School_bus.which_class())
REPLY
ayoub says
J A N U A R Y 2 2 , 2 0 2 3 AT 1 1 : 2 1 P M
Write a function to calculate resistance and capacitance (i.e. the function takes
current and voltage as data and returns resistance and capacitance)
Solve it
REPLY
class circuit:
def __init__(self,voltage,current):
self.voltage=voltage
self.current= current
def resistance(self):
def capacitance(self):
a= circuit(20,9)
r=a.resistance()
c= a.capacitance()
Dealer says
J A N U A R Y 2 0 , 2 0 2 3 AT 6 : 5 8 P M
class Vehicle:
self.color = "White"
self.name = name
self.max_speed = max_speed
self.mileage = mileage
def __str__(self):
class Bus(Vehicle):
pass
class Car(Vehicle):
pass
print(bus)
print(car)
REPLY
Kindly check and see if I would encounter any problems using this approach.
class vehicle:
PYnative Learn Python Exercises Quizzes Code Editor Tricks
Python Programming
color="white"
def __init__(self,name,max_speed,mileage,capacity):
self.name=name
self.max_speed=max_speed
self.milage=mileage
self.capacity=capacity
def fare(self):
fare= self.capacity*100
return totalFare
def desc_vehicle(self):
class bus(vehicle):
pass
class car(vehicle):
pass
REPLY
Karan says
J A N U A R Y 6 , 2 0 2 3 AT 1 2 : 1 8 P M
class vehicle:
color="white"
def __init__(self,name,max_speed,mileage,capacity):
self.name=name
self.max_speed=max_speed
self.milage=mileage
PYnative
Python Programming
Learn Python Exercises Quizzes Code Editor Tricks
self.capacity=capacity
def fare(self):
fare= self.capacity*100
return totalFare
def desc_vehicle(self):
print(self.capacity,"is capacity",self.name,"is
name",self.max_speed,"speed",self.milage, "milage",self.capacity,
"capacity")
class bus(vehicle):
pass
class car(vehicle):
pass
a=car(80,"ko",64,32)
a.desc_vehicle()
REPLY
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def __init__(self, name, mileage, capacity = 50):
super().__init__(name, mileage, capacity)
def fare(self):
fare = super().fare()
# this is bus so we need to add an extra 10% on full fare as a maintena
total_fare = fare + (fare*0.10)
return total_fare
PYnative
Python Programming School_bus = Bus("School Volvo", 12) Learn Python Exercises Quizzes Code Editor Tricks
print("Total Bus fare is:", School_bus.fare())
REPLY
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def __init__(self, name, mileage, capacity = 50):
super().__init__(name, mileage, capacity)
def fare(self):
fare = super().fare()
# this is bus so we need to add an extra 10% on full fare as a maintena
total_fare = fare + (fare*0.10)
return total_fare
REPLY
Sherrif says
D E C E M B E R 4 , 2 0 2 2 AT 4 : 3 6 P M
REPLY
Sunny says
J U L Y 2 8 , 2 0 2 2 AT 5 : 1 4 P M
class Vehicle:
color='white'
def __init__(self, name='', max_speed='', mileage=''):
self.name = name
self.max_speed = max_speed
self.mileage = mileage
def seatingcapacity(self):
print('seating capacity of {} is {}'.format(self.name,self.capacity))
def display(self):
print('Vehicle Name:{}'.format(self.name),
'Max Speed:{}'.format(self.max_speed),
'Mileage:{}'.format(self.mileage),
'Color:{}'.format(self.color))
def fare(self):
PYnative
Python Programming
print("The fare for {} is {}".format(self.name, int(self.capacity)*100)
Learn Python Exercises Quizzes Code Editor Tricks
def belongs(self):
print(self.__class__.__name__)
def checkins(self):
print('Instance of Vehicle:{}'.format(isinstance(self,Vehicle)))
class Bus(Vehicle):
def __init__(self,capacity='',**kwargs):
self.capacity=capacity
super().__init__(**kwargs)
def fare(self):
print("The fare for {} is {}".format(self.name, int(self.capacity)*100
class Car(Vehicle):
def __init__(self,capacity='',**kwargs):
self.capacity=capacity
super().__init__(**kwargs)
# Example Input:
a={'name':'Volvo',
'max_speed':30,
'mileage':40,
'capacity':100}
b={'name':'Volkswagon',
'max_speed':50,
'mileage':100,
'capacity':30}
c=Bus(**a)
d=Car(**b)
c.display()
c.seatingcapacity()
c.fare()
c.belongs()
c.checkins()
d.display()
d.seatingcapacity()
d.fare()
d.belongs()
d.checkins()
OUTPUT:
REPLY
Fabrizio says
J U L Y 7 , 2 0 2 2 AT 5 : 4 5 P M
PYnative
Python Programming
An alternative way of doing exercise 6:
Learn Python Exercises Quizzes Code Editor Tricks
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
class Bus(Vehicle):
def fare(self):
return super().fare(10)
REPLY
Lawrence says
J U L Y 1 , 2 0 2 2 AT 1 2 : 0 9 P M
# 6
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def fare(self):
return 1.1*self.capacity*100
REPLY
avi says
J U L Y 6 , 2 0 2 2 AT 7 : 1 3 P M
class Bus(Vehicle):
def fare(self):
return super().fare() * 1.1
this will allways use the total from Vehicle and add 10% , so if we change the 100
in Vehicle, it will calculate the 10% based on the new total.
Hope that was clear, sorry if the exemples were not good
REPLY
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def fare(self):
return super().fare() + 0.10*super().fare()
REPLY
Cyrus says
M AY 1 2 , 2 0 2 2 AT 1 2 : 3 3 A M
Will I run into any problems if I just did this for Ex. 4?
class Vehicle:
def __init__(self, name, max_speed, mileage):
self.name = name
self.max_speed = max_speed
self.mileage = mileage
bus = Vehicle("bus", 0, 0)
bus.seating_capacity(50)
REPLY
PYnative
Python Programming
Suraj says
Learn Python Exercises Quizzes Code Editor Tricks
M AY 2 0 , 2 0 2 2 AT 8 : 3 5 P M
NO problem!
REPLY
Masha says
A P R I L 2 3 , 2 0 2 2 AT 1 : 1 0 P M
class Vehicale():
def __init__(self,name,mileage , seat_capacity):
self.name = name
self.mileage = mileage
self.seat_capacity=seat_capacity
def fare(self):
return self.seat_capacity *100
REPLY
abc says
A P R I L 2 0 , 2 0 2 2 AT 8 : 3 2 A M
REPLY
Daniel says
M A R C H 1 7 , 2 0 2 2 AT 5 : 1 4 P M
For exercise 6 I don’t know if this is good code, code but it works well!!
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def fare(self):
PYnative
Python Programming
return self.capacity * 110
Learn Python Exercises Quizzes Code Editor Tricks
School_bus = Bus("School Volvo", 12, 50)
print("Total Bus fare is:", School_bus.fare())
REPLY
Ganymehdi says
A P R I L 1 3 , 2 0 2 2 AT 1 : 0 6 A M
I had the same idea, but I think the key is that since bus fare depends on vehicle
fare, if the formula for vehicle changes (while bus remains +10% of vehicle fare)
and you need to update your code base, the change propagates without having to
modify both classes
REPLY
Cyrus says
M AY 1 3 , 2 0 2 2 AT 1 2 : 5 2 A M
Wouldn’t the code used in the solution also change if the Vehicle formula
changes? In other words, doesn’t the code below also depend on the
vehicle fare because it’s still inheriting the Vehicle’s “fare” instance
class Bus(Vehicle):
def fare(self):
amount = super().fare()
amount += amount * 10 / 100
return amount
REPLY
REPLY
Raji says
M A R C H 1 , 2 0 2 2 AT 5 : 0 8 P M
Very useful. I started learning python. please let me know if you have more excercise like
this. Thanks for your effort.
REPLY
REPLY
PYnative
Python Programming
Jitendra chandra says
Learn Python Exercises Quizzes Code Editor Tricks
D E C E M B E R 2 9 , 2 0 2 1 AT 8 : 3 9 A M
REPLY
REPLY
Vishal says
N O V E M B E R 1 4 , 2 0 2 1 AT 1 1 : 0 9 A M
REPLY
REPLY
knotJ says
O C T O B E R 1 8 , 2 0 2 1 AT 8 : 1 4 P M
REPLY
Jokunsoo says
J U L Y 9 , 2 0 2 1 AT 5 : 2 8 P M
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def qclass(self):
objclass=str(type(self))
method,clss=objclass.split(".")
objclassclean=clss.replace("'>",'')
print (objclassclean)
class Bus(Vehicle):
pass
REPLY
Ans_3:
class Vehicle:
school_bus = Bus('Volvo',180,12)
print(school_bus.bus_info())
REPLY
REPLY
vish says
A P R I L 1 9 , 2 0 2 1 AT 3 : 1 1 P M
REPLY
dhruv says
A P R I L 1 4 , 2 0 2 1 AT 6 : 1 4 P M
REPLY
Vishal says
A P R I L 1 6 , 2 0 2 1 AT 7 : 5 4 P M
PYnative
Python Programming
I am glad it helped you, Dhruv.
Learn Python Exercises Quizzes Code Editor Tricks
REPLY
REPLY
Vishal says
M A R C H 2 1 , 2 0 2 1 AT 1 1 : 2 5 A M
REPLY
REPLY
Lamhamdi says
J A N U A R Y 3 1 , 2 0 2 1 AT 1 1 : 0 4 P M
class Vehicle:
def __init__(self, name, mileage, capacity):
self.name = name
self.mileage = mileage
self.capacity = capacity
def fare(self):
return self.capacity * 100
class Bus(Vehicle):
def fare(self):
return super().fare() + self.capacity * 10
REPLY
Paul says
J A N U A R Y 2 1 , 2 0 2 1 AT 5 : 2 7 A M
Mohit says
M AY 2 1 , 2 0 2 1 AT 1 2 : 1 9 P M
correct Paul ,
REPLY
Ryan says
D E C E M B E R 1 1 , 2 0 2 0 AT 1 1 : 4 9 P M
Exercise Question 6:
The help text states that outcome should be 5550.0 but the solution code and expected
output are both 5500.0.
REPLY
Vishal says
D E C E M B E R 1 2 , 2 0 2 0 AT 6 : 2 9 P M
Hey Ryan, Thank you for noticing the typing mistake. Now, I have fixed the typing
mistake.
REPLY
REPLY
Vishal says
S E P T E M B E R 1 7 , 2 0 2 0 AT 7 : 4 9 P M
REPLY
Leave a Reply
your email address will NOT be published. all comments are moderated according to our comment policy.
Comment *
PYnative
Python Programming
Learn Python Exercises Quizzes Code Editor Tricks
Use <pre> tag for posting code. E.g. <pre> Your entire code </pre>
Name * Email *
Post Comment
PYnative.com is for Python lovers. Here, Learn Python To get New Python Tutorials, Exercises, About Us
You can get Tutorials, Exercises, and Python Basics and Quizzes Contact Us
Quizzes to practice and improve your
Python Databases Twitter We use cookies to improve your
Python skills.
Python Exercises experience. While using PYnative, you
Facebook
agree to have read and accepted our
Python Quizzes Sitemap
Terms Of Use, Cookie Policy, and
Online Python Code Editor
Privacy Policy.
Python Tricks