BASHA TECH

[HackerRank][Python] Class vs Instance 본문

Activity/Coding Test

[HackerRank][Python] Class vs Instance

Basha 2023. 4. 12. 18:05
728x90

Task
Write a Person class with an instance variable, age, and a constructor that takes an integer, initailAge, as a parameter. The constructor must assign  to  after confirming the argument passed as  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 age instance variable by 1.
  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).

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("")

The __init__ method checks if the initial age is negative, and sets the age to 0 if it is, and prints a message. Otherwise, it sets the age to the given value.

The amIOld method checks the age of the person and prints a message based on their age.

The yearPasses method increments the age of the person by 1.

The code reads in an integer t, the number of test cases. Then, for each test case, it reads in an integer age and creates a Person object with that age. It then calls the amIOld method to print the initial message, calls yearPasses three times, and then calls amIOld again to print the updated message. Finally, it prints a blank line before moving on to the next test case.

 

728x90
반응형

'Activity > Coding Test' 카테고리의 다른 글

[HackerRank][Python] Let's Review  (1) 2023.04.17
[HackerRank][Python] Loop  (0) 2023.04.13
[HackerRank][Python] Intro to Conditional Statements  (0) 2023.04.11
[HackerRank][Python] Operators  (0) 2023.04.11
[HackerRank][Python] Data Types  (0) 2023.04.11
Comments