Python is an object-oriented programming language, which means that it provides features that support object-oriented programming (OOP).

The object is simply a collection of data (variables) and methods (functions) that act on those data. And, the class is a blueprint for the object.

We can think of a class as a sketch (prototype) of a car. It contains all the details about the engine, tire, windows, doors, color etc. Based on these descriptions we build a red color car with tint windows, scissor door, Yokohama tires and a 3.2 L engine. This red car is the object of the class car.

To learn more about object oriented programming visit here.

Objective
In this challenge, we’re going to learn about the difference between a class and an instance; because this is an Object Oriented concept, it’s only enabled in certain languages. Check out the Tutorial tab for learning materials and an instructional video!

Task
Write a Person class with an instance variable, age, and a constructor that takes an integer, initialAge, as a parameter. The constructor must assign initialAge to age after confirming the argument passed as initialAge is not negative; if a negative argument is passed as initialAge , the constructor should set age to 0  and print Age is not valid, setting age to 0. In addition, you must write the following instance methods:

  1. yearPasses()should increase the  instance variable by .
  2. amIOld()should perform the following conditional actions:
    • If  age<13, print You are young..
    • If  age >=13 and age<18, print You are a teenager.
    • Otherwise, print You are old.

To help you learn by example and complete this challenge, much of the code is provided for you, but you’ll be writing everything in the future. The code that creates each instance of your Person class is in the main method. Don’t worry if you don’t understand it all quite yet!

Note: Do not remove or alter the stub code in the editor.

Input Format

Input is handled for you by the stub code in the editor.

The first line contains an integer T,  (the number of test cases), and the T  subsequent lines each contain an integer denoting the age of a Person instance.

Constraints

  • 1 <= T <= 4
  • -5<= age<=30

Output Format

Complete the method definitions provided in the editor so they meet the specifications outlined above; the code to test your work is already in the editor. If your methods are implemented correctly, each test case will print 2  or 3 lines (depending on whether or not a valid  initialAge was passed to the constructor).

Sample Input

4

-1

10

16

18

Sample Output

Age is not valid, setting age to 0.

You are young.

You are young.

You are young.

You are a teenager.

You are a teenager.

You are old.

You are old.

You are old.

Solution:

class Person:
    def __init__(self,initialAge):
        # Add some more code to run some checks on initialAge
        if initialAge <0:
            self.age= 0
            print('Age is not valid, setting age to 0.')
        else:
            self.age=initialAge
    def amIOld(self):
        # Do some computations in here and print out the correct statement to the console
        if self.age<13:
            print('You are young.')
        elif self.age>=13 and self.age<18:
            print('You are a teenager.')
        else:
            print('You are old.')
    def yearPasses(self):
        # Increment the age of the person in here  
        self.age+=1
t = int(input())
for i in range(0, t):
    age = int(input())         
    p = Person(age)  
    p.amIOld()
    for j in range(0, 3):
        p.yearPasses()       
    p.amIOld()
    print("")
HackerRank 30 Days of Code Challenge

Here we have created a class person and defined an instance of the class which takes initialAge as the parameter. The following if statement runs check if the initialAge is less than zero. If the initialAge is less than zero then the age is set to zero and the statement ‘Age is not valid, setting age to 0.’ is print. If initialAge is not zero then the value of initialAge is assigned to age.

A new method amIOld is defined inside class Person. The method amIOld check the age. if age is less than 13 it prints ‘You are a teenager.’, if age is greater than or equal to 13 and less than 18 it prints ‘You are a teenager.’ else it prints ‘You are old.’.

Next, another method is defined called yearPasses. It increments the value of age by one.

Then we have taken an input t and convert it into integer type.  This is the number of test cases we have to run. To run the test cases we apply a for loop. Then we take the input age and convert it to string. We create an instance of the Person class name p. We invoke the amIOld function of class Person.  The subsequent for loop runs three times so the value of age is increment by three. The new age is again passed to amIOld function and print relevant statement.

Leave a Reply

Your email address will not be published.