Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from collections import Counter
- import datetime
- import textwrap
- try:
- from fakeUserData import generator
- except ImportError:
- print('Missing dependency')
- print('pip install fakeUserData')
- sys.exit(1)
- ZODIAC = {
- 12: ['sagittarius', 'capricorn', 22],
- 1: ['capricorn', 'aquarius', 20],
- 2: ['aquarius', 'pisces', 19],
- 3: ['pisces', 'aries', 21],
- 4: ['aries', 'taurus', 20],
- 5: ['taurus', 'gemini', 21],
- 6: ['gemini', 'cancer', 21],
- 7: ['cancer', 'leo', 23],
- 8: ['leo', 'virgo', 23],
- 9: ['virgo', 'libra', 23],
- 10: ['libra', 'scorpio', 23],
- 11: ['scorpio', 'sagittarius', 22]
- }
- class Schüler:
- def __init__(self, vorname, nachname, geburtstag):
- self.vorname = vorname
- self.nachname = nachname
- self.geburtstag = geburtstag
- self._zodiac = None
- @property
- def zodiac(self):
- if not self._zodiac:
- before, after, day = ZODIAC[self.geburtstag.month]
- self._zodiac = before.title() if self.geburtstag.day < day else after.title()
- return self._zodiac
- def __repr__(self):
- name = self.vorname + ' ' + self.nachname
- return f'{self.__class__.__name__}(name="{name}", zodiac="{self.zodiac}")'
- def fake_schüler(n):
- result = []
- for _ in range(n):
- vorname, nachname = generator.name().split()
- day, month, year = generator.birthday()
- geburtstag = datetime.date(year, month, day)
- s = Schüler(vorname, nachname, geburtstag)
- result.append(s)
- return result
- def zähle_zodiac(schüler):
- return Counter(s.zodiac for s in schüler)
- def print_data(data):
- text = textwrap.fill(str(data), initial_indent='# ', subsequent_indent='# ')
- print(text)
- schüler_liste = fake_schüler(10)
- zodiac_count = zähle_zodiac(schüler_liste)
- print_data(schüler_liste)
- print()
- print_data(zodiac_count)
- # output
- # [Schüler(name="Aleen Mccament", zodiac="Pisces"),
- # Schüler(name="Piper Mccart", zodiac="Libra"), Schüler(name="Ellena
- # Lapa", zodiac="Gemini"), Schüler(name="Aubrey Hillan",
- # zodiac="Capricorn"), Schüler(name="Lucia Heally",
- # zodiac="Capricorn"), Schüler(name="Fredric Ludgate",
- # zodiac="Pisces"), Schüler(name="Alexis Jaureguy", zodiac="Virgo"),
- # Schüler(name="Rico Norem", zodiac="Virgo"), Schüler(name="Olin
- # Saunder", zodiac="Virgo"), Schüler(name="Becki Nestico",
- # zodiac="Scorpio")]
- # Counter({'Virgo': 3, 'Pisces': 2, 'Capricorn': 2, 'Libra': 1,
- # 'Gemini': 1, 'Scorpio': 1})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement