Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
ok, money method is too complicated :) solution in Clear category for Every Person is Unique by marcopunteri
from datetime import datetime,timedelta
TODAY = datetime.strptime("01.01.2018", "%d.%m.%Y")
class Person:
def __init__(self, first_name, last_name, birth_date, job, working_years, salary, country, city, gender='unknown'):
self.first_name = first_name
self.last_name = last_name
self.birth_date = datetime.strptime(birth_date, "%d.%m.%Y")
self.job = job
self.working_years = working_years
self.salary = salary
self.country = country
self.city = city
self.gender = gender
def name(self):
return f"{self.first_name} {self.last_name}"
def age(self):
years = TODAY.year - self.birth_date.year
if self.birth_date.month == TODAY.month:
years = years if birth_date.day < TODAY.day else years-1
else:
years = year if self.birth_date.month < TODAY.month else years -1
return years
def work(self):
gender_sentence = {'male' : 'He i', 'female': 'She i', 'unknown' : 'I'}
return f"{gender_sentence[self.gender]}s a {self.job}"
def money(self):
money = self.working_years * self.salary * 12
money = '.' * (3-len(str(money))%3) + str(money)
money = list(map(''.join, zip(*[iter(money)]*3)))
money = " ".join(money)
money = money.replace('.','').strip()
return money
def home(self):
return f"Lives in {self.city}, {self.country}"
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
p1 = Person("John", "Smith", "19.09.1979", "welder", 15, 3600, "Canada", "Vancouver", "male")
p2 = Person("Hanna Rose", "May", "05.12.1995", "designer", 2.2, 2150, "Austria", "Vienna")
assert p1.name() == "John Smith", "Name"
assert p1.age() == 38, "Age"
assert p2.work() == "Is a designer", "Job"
assert p1.money() == "648 000", "Money"
assert p2.home() == "Lives in Vienna, Austria", "Home"
print("Coding complete? Let's try tests!")
Dec. 12, 2021
Comments: