Bases: StatMaker
Class to collect and print some stuff about a list of Person objects.
Source code in may/stats/stats_people.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 | class StatMakerPop(StatMaker):
"""Class to collect and print some stuff about a list of Person objects.
"""
def __init__(self, people):
super().__init__()
self.people = people
def get_sex_breakdown(self):
num_male, num_female, total = 0,0,0
for person in self.people:
total += 1
if person.sex == 'male':
num_male += 1
if person.sex == 'female':
num_female += 1
logger.info(f" Total {total} : {num_male} male, {num_female} female")
def get_age_group_breakdown(self):
breakdown = np.zeros(4)
for person in self.people:
if person.age < 18:
breakdown[0] += 1
elif person.age < 25:
breakdown[1] += 1
elif person.age < 60:
breakdown[2] += 1
else:
breakdown[3] += 1
logger.info(f" Number age < 18 : {breakdown[0]}")
logger.info(f" Number 18 <= age < 25 : {breakdown[1]}")
logger.info(f" Number 25 <= age < 60 : {breakdown[2]}")
logger.info(f" Number 60 <= Age : {breakdown[3]}")
def get_age_stats(self):
ages = np.zeros(len(self.people))
for i,person in enumerate(self.people):
ages[i] = person.age
return self.collect_statistics(ages)
|