PROG0470 - Showoff
There are twelve people that have won four big yearly American entertainment prizex: Emmy, Grammy, Oscar en Tony. Winning these four awards is also called EGOT (or sometimes GATE, since the official name of an Oscar is actually an Academy Award) or the Grand Slam of showbiz. These awards honor excellent performances on the fields of television, music (or other audio-recordings), film and theater.
name | EGOT completed | Emmy | Grammy | Oscar | Tony |
---|---|---|---|---|---|
Richard Rodgers | 1962 (17 jaar) | 1962 | 1960 | 1945 | 1950 |
Helen Hayes | 1977 (45 jaar) | 1953 | 1977 | 1932 | 1947 |
Rita Moreno | 1977 (16 jaar) | 1977 | 1972 | 1961 | 1975 |
John Gielgud | 1991 (30 jaar) | 1991 | 1979 | 1981 | 1961 |
Audrey Hepburn | 1994 (41 jaar) | 1993 | 1994 | 1953 | 1954 |
Marvin Hamlisch | 1995 (23 jaar) | 1995 | 1974 | 1973 | 1976 |
Jonathan Tunick | 1997 (20 jaar) | 1982 | 1988 | 1977 | 1997 |
Mel Brooks | 2001 (34 jaar) | 1967 | 1998 | 1968 | 2001 |
Mike Nichols | 2001 (40 jaar) | 2001 | 1961 | 1967 | 1964 |
Whoopi Goldberg | 2002 (17 jaar) | 2002 | 1985 | 1990 | 2002 |
Scott Rudin | 2012 (28 jaar) | 1984 | 2012 | 2007 | 1994 |
Robert Lopez | 2014 (10 jaar) | 2008 | 2012 | 2014 | 2004 |
The acronym EGOT was used for the first time by actor Philip Michael Thomas when he revealed his ambition to win these four awards. Until today, however, he was never nominated for either of these awards, but he did win a People's Choice Award and he was nominated for the Golden Globe. Three other persons — Barbra Streisand, Liza Minelli and James Earl Jones — have won these four awards, but one of them was granted outside of the competition as a kind of honour (Streisand's Tony, Minnelli's Grammy and Jones' Oscar). From the twelve othe winners there are two — Marvin Hamlisch and Richard Rodgers — that have captured the Pulitzerprize.
The following persons each have won three of the four big entertainment awards in competitive categories. Winning three out of four awards is also called 3GOT (witticism to the term EGOT). The four possible combinations are called EGO, TOE, GOT and GET.
Assignment
- Write a function grandslam to which a dictionary must be given, that portrays the name of a prize on a collection of names of the people who have won that prize. The function must print the names of the persons that have won all awards from the given dictionary.
- Write a function showoff to which two arguments must be given: the name of a person and the dictionary that portrays a name of a prize on the names of the persons who have won that prize. The function must print a string that corresponds with one of the following classifications of the given person:
- yep: the person has won all awards from the given dictionary
- close (no prize): the person has won all awards except for one; the name of the prize the person has not (yet) won, must be printed in the place of prize in the string that is printed by the function.
- nope: according to the given dictionary, the person has not (yet) won at least two awards out of four.
Example
>>> awards = { ... 'Emmy':{'Audrey Hepburn', 'Cyndi Lauper', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Grammy':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Oscar':{'Audrey Hepburn', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Tony':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch'} ... } >>> grandslam(awards) {'Audrey Hepburn', 'Marvin Hamlisch'} >>> showoff('Audrey Hepburn', awards) 'yep' >>> showoff('Elton John', awards) 'close (no Emmy)' >>> showoff('Ingrid Bergman', awards) 'close (no Grammy)' >>> showoff('Philip Michael Thomas', awards) 'nope' >>> awards = { ... 'Emmy':{'Audrey Hepburn', 'Cyndi Lauper', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Grammy':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Oscar':{'Audrey Hepburn', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Tony':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch'}, ... 'Pulitzer':{'Marvin Hamlisch', 'Richard Rodgers'} ... } >>> grandslam(awards) {'Marvin Hamlisch'} >>> showoff('Marvin Hamlisch', awards) 'yep' >>> showoff('Audrey Hepburn', awards) 'close (no Pulitzer)' >>> showoff('Elton John', awards) 'nope'
Er zijn twaalf mensen die de vier grote jaarlijkse Amerikaanse entertainmentprijzen gewonnen hebben: Emmy, Grammy, Oscar en Tony. Het winnen van deze vier prijzen wordt afgekort als EGOT (of soms als GATE als men de officiële naam Academy Award gebruikt voor de Oscar) en met spreekt ook van de Grand Slam van de showbusiness. Deze prijzen eren uitstekende prestaties op gebied van televisie, muziek (of andere audio-opnames), film en theater.
naam | EGOT voltooid | Emmy | Grammy | Oscar | Tony |
---|---|---|---|---|---|
Richard Rodgers | 1962 (17 jaar) | 1962 | 1960 | 1945 | 1950 |
Helen Hayes | 1977 (45 jaar) | 1953 | 1977 | 1932 | 1947 |
Rita Moreno | 1977 (16 jaar) | 1977 | 1972 | 1961 | 1975 |
John Gielgud | 1991 (30 jaar) | 1991 | 1979 | 1981 | 1961 |
Audrey Hepburn | 1994 (41 jaar) | 1993 | 1994 | 1953 | 1954 |
Marvin Hamlisch | 1995 (23 jaar) | 1995 | 1974 | 1973 | 1976 |
Jonathan Tunick | 1997 (20 jaar) | 1982 | 1988 | 1977 | 1997 |
Mel Brooks | 2001 (34 jaar) | 1967 | 1998 | 1968 | 2001 |
Mike Nichols | 2001 (40 jaar) | 2001 | 1961 | 1967 | 1964 |
Whoopi Goldberg | 2002 (17 jaar) | 2002 | 1985 | 1990 | 2002 |
Scott Rudin | 2012 (28 jaar) | 1984 | 2012 | 2007 | 1994 |
Robert Lopez | 2014 (10 jaar) | 2008 | 2012 | 2014 | 2004 |
Het acroniem EGOT werd voor het eerst gebruikt door acteur Philip Michael Thomas toen hij onthulde dat hij de ambitie had om deze vier prijzen te winnen. Tot op heden werd hij echter nog voor geen enkele van de prijzen genomineerd, maar hij won wel een People's Choice Award en een nominatie voor de Golden Globe. Drie andere personen — Barbra Streisand, Liza Minelli en James Earl Jones — hebben ook de vier prijzen gewonnen, maar één daarvan werd buiten competitie uitgereikt als een soort ere-onderscheiding (Streisand's Tony, Minnelli's Grammy en Jones' Oscar). Van de twaalf winnaars zijn er ook nog twee — Marvin Hamlisch and Richard Rodgers — die de Pulitzerprijs in de wacht gesleept hebben.
De volgende personen hebben elk drie van de vier grote entertainmentprijzen gewonnen in competitieve categorieën. Het winnen van drie van de vier prijzen wordt ook wel eens 3GOT genoemd (kwinkslag naar de term EGOT), waarbij de vier combinaties afzonderlijk benoemd worden als EGO, TOE, GOT en GET.
Opgave
- Schrijf een functie grandslam waaraan een dictionary moet doorgegeven worden, die telkens de naam van een prijs afbeeldt op een verzameling van de namen van personen die de prijs gewonnen hebben. De functie moet een verzameling teruggeven met de namen van personen die alle prijzen uit de gegeven dictionary gewonnen hebben.
- Schrijf een functie uitslover waaraan twee argumenten moeten doorgegeven worden: de naam van een persoon en een dictionary die telkens de naam van een prijs afbeeldt op een verzameling van de namen van personen die de prijs gewonnen hebben. De functie moet een string teruggeven die overeenkomt met één van de volgende classificaties van de gegeven persoon:
- ja: de persoon heeft alle prijzen gewonnen uit de gegeven dictionary
- bijna (geen prijs): de persoon heeft op één na alle prijzen gewonnen uit de gegeven dictionary; de naam van de prijs die de persoon (nog) niet gewonnen heeft, moet ingevuld worden op de plaats van prijs in de string die door de functie teruggegeven wordt
- neen: volgens de gegeven dictionary heeft de persoon minstens twee prijzen (nog) niet gewonnen
Voorbeeld
>>> prijzen = { ... 'Emmy':{'Audrey Hepburn', 'Cyndi Lauper', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Grammy':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Oscar':{'Audrey Hepburn', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Tony':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch'} ... } >>> grandslam(prijzen) {'Audrey Hepburn', 'Marvin Hamlisch'} >>> uitslover('Audrey Hepburn', prijzen) 'ja' >>> uitslover('Elton John', prijzen) 'bijna (geen Emmy)' >>> uitslover('Ingrid Bergman', prijzen) 'bijna (geen Grammy)' >>> uitslover('Philip Michael Thomas', prijzen) 'neen' >>> prijzen = { ... 'Emmy':{'Audrey Hepburn', 'Cyndi Lauper', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Grammy':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Oscar':{'Audrey Hepburn', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch', 'Robin Williams'}, ... 'Tony':{'Audrey Hepburn', 'Cyndi Lauper', 'Elton John', 'Ingrid Bergman', 'Marvin Hamlisch'}, ... 'Pulitzer':{'Marvin Hamlisch', 'Richard Rodgers'} ... } >>> grandslam(prijzen) {'Marvin Hamlisch'} >>> uitslover('Marvin Hamlisch', prijzen) 'ja' >>> uitslover('Audrey Hepburn', prijzen) 'bijna (geen Pulitzer)' >>> uitslover('Elton John', prijzen) 'neen'
Added by: | Peter Dawyndt |
Date: | 2014-04-09 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |