-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathnobel_prize.py
More file actions
66 lines (45 loc) · 2.61 KB
/
Copy pathnobel_prize.py
File metadata and controls
66 lines (45 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import requests
# Tips: använd sidan nedan för att se vilken data vi får tillbaks och hur apiet fungerar
# vi använder oss enbart av /nobelPrizes
# Dokumentation, hjälp samt verktyg för att testa apiet fins här: https://app.swaggerhub.com/apis/NobelMedia/NobelMasterData/2.1
HELP_STRING = """
Ange ett år och fält
Exempelvis 1965 fysik
"""
cat = {"fysik": "phy",
"kemi": "che",
"litteratur": "lit",
"ekonomi": "eco",
"fred": "pea",
"medicin": "med"}
# TODO 10p programmet skall ge en hjälpsam utskrift istället för en krasch om användaren skriver in fel input
# TODO 15p om användaren inte anger ett område som exempelvis fysik eller kemi så skall den parametern inte skickas med till apiet och vi får då alla priser det året
def main():
while True:
print(HELP_STRING)
# TODO 5p Skriv bara ut hjälptexten en gång när programmet startar inte efter varje gång användaren matat in en fråga
# Förbättra hjälputskriften så att användaren vet vilka fält, exempelvis kemi som finns att välja på
# TODO 5p Gör så att det finns ett sätt att avsluta programmet, om användaren skriver Q så skall programmet stängas av
# Beskriv i hjälptexten hur man avslutar programmet
# TODO 5p Gör så att hjälptexten skrivs ut om användaren skriver h eller H
aaa = input(">")
a, b = aaa.split()
c = cat[b]
c = {"nobelPrizeYear": int(a),"nobelPrizeCategory":c}
res = requests.get("http://api.nobelprize.org/2.1/nobelPrizes", params=c).json()
# TODO 5p Lägg till någon typ av avskiljare mellan pristagare, exempelvis --------------------------
# TODO 20p Skriv ut hur mycket pengar varje pristagare fick, tänk på att en del priser delas mellan flera mottagare, skriv ut både i dåtidens pengar och dagens värde
# Skriv ut med tre decimalers precision. exempel 534515.123
# Skapa en funktion som hanterar uträkningen av prispengar och skapa minst ett enhetestest för den funktionen
# Tips, titta på variabeln andel
# Feynman fick exempelvis 1/3 av priset i fysik 1965, vilket borde gett ungefär 282000/3 kronor i dåtidens penningvärde
for p in res["nobelPrizes"]:
peng = p["prizeAmount"]
idagpeng = p["prizeAmountAdjusted"]
print(f"{p['categoryFullName']['se']} prissumma {peng} SEK")
for m in p["laureates"]:
print(m['knownName']['en'])
print(m['motivation']['en'])
andel = m['portion']
if __name__ == '__main__':
main()