Op 20 januari 2017 werd Donald John Trump1 geïnaugureerd als vijfenveerstigste president van de Verenigde Staten. Sinds die dag zijn er tegelijkertijd vijf voormalige Amerikaanse presidenten nog in leven.

presidenten
Van 20 januari 2001 tot 5 juni 2004 waren er vijf voormalige presidenten van de Verenigde Staten nog in leven. Van links naar rechts: Bill Clinton, George H. W. Bush, Ronald Reagan, Jimmy Carter en Gerald Ford.

In de geschiedenis van Amerika zijn er slechts vier perioden geweest waarin dat het geval was:

Herbert Hoover leefde nog 11.553 dagen (31 jaar en 230 dagen) nadat hij zijn ambt had neergelegd. James Polk kon daarentegen slechts 3 maanden (103 dagen) van zijn pensioen genieten. In totaal zijn er acht presidenten geweest die nooit de status van "voormalig president" bereikten omdat ze overleden tijdens hun ambtstermijn: William H. Harrison (longontsteking), Zachary Taylor (buikgriep), Abraham Lincoln (vermoord), James A. Garfield (vermoord), William McKinley (vermoord), Warren G. Harding (hersenbloeding), Franklin D. Roosevelt (hersenbloeding) en John F. Kennedy (vermoord).

Opgave

We werken met tekstbestanden die informatie bevatten over de levensduur en de ambtstermijn van de staatshoofden van een land. Elke regel bevat vijf informatievelden over een staatshoofd, die telkens van elkaar gescheiden worden door één enkele tab: i) naam van het staatshoofd, ii) geboortedatum, iii) begin van (eerste) ambtstermijn, iv) einde van (laatste) ambtstermijn en v) datum van overlijden. De vier datumvelden worden omschreven in het formaat dd/mm/jjjj, waarbij elk deel staat voor een natuurlijk getal zonder voorloopnullen: dd staat voor de dag, mm voor de maand en jjjj voor het jaartal. Hieronder staat een voorbeeld van zo een bestand met de informatie over de laatste tien presidenten van de Verenigde Staten.

Lyndon B. Johnson	27/8/1908	22/11/1963	20/1/1969	22/1/1973
Richard Nixon	9/1/1913	20/1/1969	9/8/1974	22/4/1994
Gerald Ford	14/7/1913	9/8/1974	20/1/1977	26/12/2006
Jimmy Carter	1/10/1924	20/1/1977	20/1/1981	
Ronald Reagan	6/2/1911	20/1/1981	20/1/1989	5/6/2004
George H. W. Bush	12/6/1924	20/1/1989	20/1/1993	
Bill Clinton	19/8/1946	20/1/1993	20/1/2001	
George W. Bush	6/7/1946	20/1/2001	20/1/2009	
Barack Obama	4/8/1961	20/1/2009	20/1/2017	
Donald Trump	14/6/1946	20/1/2017		

Als een staatshoofd tijdens meerdere onderbroken perioden zijn ambt heeft uitgeoefend, dan gaan we er gemakkelijkshalve van uit dat er slechts één ononderbroken ambtstermijn is die loopt van het begin van de eerste ambtstermijn tot het einde van de laatste ambtstermijn. Als het staatshoofd op vandaag nog in functie is, dan wordt het einde van zijn ambtstermijn voorgesteld door de lege string. Als het staatshoofd op vandaag nog in leven is, dan wordt de datum van zijn overlijden voorgesteld door de lege string. Gevraagd wordt:

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat het tekstbestand vs_presidenten.txt2 zich in de huidige directory bevindt.

>>> presidenten = staatshoofden('vs_presidenten.txt3')
>>> presidenten['George Washington']
(datetime.date(1732, 2, 22), datetime.date(1789, 4, 30), datetime.date(1797, 3, 4), datetime.date(1799, 12, 14))
>>> presidenten['Barack Obama']
(datetime.date(1961, 8, 4), datetime.date(2009, 1, 20), datetime.date(2017, 1, 20), None)
>>> presidenten['Donald Trump']
(datetime.date(1946, 6, 14), datetime.date(2017, 1, 20), None, None)

>>> pensioen('Herbert Hoover', presidenten)
11553
>>> pensioen('James K. Polk', presidenten)
103
>>> pensioen('Bill Clinton', presidenten)

>>> pensioen('Abraham Lincoln', presidenten)
0
>>> pensioen('Donald Trump', presidenten)
0
>>> pensioen('Donald Duck', presidenten)
Traceback (most recent call last):
AssertionError: onbekend staatshoofd

>>> import datetime
>>> levend(presidenten)
{'Donald Trump', 'Jimmy Carter', 'George H. W. Bush', 'Bill Clinton', 'Barack Obama', 'George W. Bush'}
>>> levend(presidenten, voormalig=True)
{'George H. W. Bush', 'George W. Bush', 'Jimmy Carter', 'Bill Clinton', 'Barack Obama'}
>>> levend(presidenten, voormalig=True, referentie=datetime.date(2016, 12, 31))
{'George W. Bush', 'George H. W. Bush', 'Bill Clinton', 'Jimmy Carter'}
>>> levend(presidenten, voormalig=True, referentie=datetime.date(1861, 12, 31))
{'Martin Van Buren', 'Franklin Pierce', 'Millard Fillmore', 'James Buchanan', 'John Tyler'}
>>> levend(presidenten, voormalig=True, referentie=datetime.date(1994, 3, 26))
{'Jimmy Carter', 'Ronald Reagan', 'Gerald Ford', 'Richard Nixon', 'George H. W. Bush'}
>>> levend(presidenten, voormalig=True, referentie=datetime.date(2003, 10, 12))
{'Gerald Ford', 'Jimmy Carter', 'George H. W. Bush', 'Bill Clinton', 'Ronald Reagan'}

Epiloog

Hieronder staat een grafische tijdslijn met de levensduur en de ambtstermijn van alle presidenten van de Verenigde Staten. Sinds het presidentschap in 1789 werd ingevoerd, zijn er vierenveertig personen president van de Verenigde Staten geweest. Ze worden opgelijst in chronologische volgorde van uitoefening van hun presidentschap (Grover Cleveland is de enige president die het ambt tijdens twee onderbroken perioden heeft uitgeoefend; hij werd opgenomen in de volgorde van zijn eerste presidentschap).

tijdslijn van Amerikaanse presidenten
Tijdslijn van Amerikaanse presidenten.

Het gebeurt zelden dat zoveel voormalige Amerikaanse presidenten samen te zien zijn. Meestal komen ze enkel samen voor officiële gebeurtenissen zoals de inauguratie van een nieuwe president, maar op 21 oktober 2017 waren de vijf voormalige presidenten Jimmy Carter, George H. W. Bush, Bill Clinton, George W. Bush en Barack Obama samen te zien op een benefietconcert dat geld inzamelde voor de slachtoffers van de orkanen Harvey, Irma en Maria. George H. W. Bush had op dat moment al een vorm van Parkinson, waardoor hij in een rolstoel zat.

vijf voormalige amerikaanse presidenten
Vijf voormalige amerikaanse presidenten samen op één foto. Van links naar rechts: George H. W. Bush, Barack Obama, George W. Bush, Bill Clinton en Jimmy Carter.