я старый Хакерранк вызов - PullRequest
0 голосов
/ 12 декабря 2018

В этой задаче хакерранка я предполагаю написать класс Person с переменной экземпляра age и конструктором, который принимает целое число initialAge в качестве параметра.Конструктор должен присвоить initialAge age после подтверждения переданного аргумента как неотрицательного;если передается отрицательный аргумент как, конструктор должен установить в значение и вывести Age недопустимым, установив age в 0 .. Кроме того, вы должны написать следующие методы экземпляра:

  1. yearPasses ()увеличьте переменную экземпляра на.
  2. amIOld () должен выполнить следующие условные действия:
    • If, напечатать Вы молоды ..
    • Если и, напечатать Вы подросток..
    • В противном случае распечатайте Вы старый ..

Это код:

class Person:
    def __init__(self,initialAge):
        # Add some more code to run some checks on initialAge
        self.initialAge = age
    def amIOld(self):
        # Do some computations in here and print out the correct statement to the console
        if age <= 0:
            age is 0
            print("Age is not valid, setting age to 0")

        elif age < 13:
            print("You are young.")

        elif 13 <= age < 18:
            print("You are teenager.")

        else:
            print("You are old.")
    def yearPasses(self):
        # Increment the age of the person in here
        return 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("")

Это ввод:

4
-1
10
16
18

Это ожидаемый вывод:

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.

это мой вывод:

Age is not valid, setting age to 0
Age is not valid, setting age to 0

You are young.
You are young.

You are teenager.
You are teenager.

You are old.
You are old.

Что не так с моим кодом?

1 Ответ

0 голосов
/ 13 августа 2019

Все решения выполнены в хорошем подходе, но они не дают правильных результатов.Следующее решение сделано так же, но правильно.Взгляните на следующее решение:

class Person:
    def __init__(self,initialAge):
        self.age = initialAge
        if self.age <=0:
            print('Age is not valid, setting age to 0.')
        # Add some more code to run some checks on initialAge
    def amIOld(self):
        if self.age < 13:
            print('You are young.')
        elif (13<=self.age< 18):
            print('You are a teenager.')
        else:
            print('You are old.')
    # Do some computations in here and print out the correct statement to the console
    def yearPasses(self):
        self.age +=1
 # Already provided by Hackerank in the challenge!
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("")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...