Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- a = [(name, random.sample(range(-1, 101), 6)) for name in ["Adian Grobelnik", "Luka Jerman",
- "Matija Marjan", "Nermin Huseinović", "Jurij Berak",
- "John Staller", "Niko Slapar", "Daniel Železnik",
- "Simon Janežič", "Armin Grasseli",
- "Ivo Mitrović", "Jan Babnik", "Domen Devatak",
- "Ana Bobnar", "Jana Milek", "Nina Robar", "Anja Šoštaršoč",
- "Mija Levstnik", "Tija Hlade", "Lina Repar", "Maja Ceglar",
- "Hana Durić", "Viktorija Marušič", "Luna Smole", "Tara Novak",
- "Pia Podobnik"]]
- absoluteGrade = []
- relativeGrade = []
- for name, scores in a:
- print("name: {}, score: {}".format(name,scores))
- tmp_scores = scores.copy() #so we don't affect the actual scores
- #remove non-existant tests
- while -1 in tmp_scores:
- tmp_scores.remove(-1)
- #calculate the relative score
- relative = sum(tmp_scores) / len(tmp_scores)
- relativeGrade.append(relative)
- print("{}, relative score: {}".format(name, relative))
- #and the absolute score
- abso = sum(tmp_scores) / 6
- absoluteGrade.append(abso)
- print("{}, absolute score: {}".format(name, abso))
- # Maximum, minimum and name
- # F
- print("{}, ocene: {}, absolutno povprečje {}, relativno povprecje {},"
- "najboljsi rezultat, je dosegel na : {}, najslabsi rezultat je dosegel na: {}".format(name,scores, abso, relative,
- scores.index(max(scores))+1,scores.index(min(scores))+1))
- print("{},najvecja absolutna ocena: {},{} ,najmanjsa absolutna ocena: {}".format(a[absoluteGrade.index(max(absoluteGrade))][0],max(absoluteGrade),a[absoluteGrade.index(min(absoluteGrade))][0], min(absoluteGrade)))
- stars = [0]*9
- for scores in absoluteGrade:
- global stars
- if scores > 90: stars [0] +=1
- if scores > 80: stars [1] +=1
- if scores > 70: stars [2] +=1
- if scores > 60: stars [3] +=1
- if scores > 50: stars [4] +=1
- if scores > 40: stars [5] +=1
- if scores > 30: stars [6] +=1
- if scores > 20: stars [7] +=1
- else: stars[8] +=1
- percents = ["<20%",
- "21% to 31%",
- "31% to 41",
- "41% to 51",
- "51% to 61",
- "61% to 71%",
- "71% to 81%",
- "81% ti 91%",
- "91% to 100%",]
- for number, starcount in enumerate(reversed(stars)):
- print("{}: {} {}".format(percents[number], starcount, starcount*"*"))
- emptyList = []
- first_tests = [scores[0] for name, scores in a]
- average1st = sum(first_tests)/len(first_tests)
- emptyList.append(average1st)
- second_tests = [scores[1] for name, scores in a]
- average2nd = sum(second_tests)/len(second_tests)
- emptyList.append(average2nd)
- third_tests = [scores[2] for name, scores in a]
- average3rd = sum(third_tests)/len(third_tests)
- emptyList.append(average3rd)
- forth_tests = [scores[3] for name, scores in a]
- average4th = sum(forth_tests)/len(forth_tests)
- emptyList.append(average4th)
- fifth_tests = [scores[4] for name, scores in a]
- average5th = sum(fifth_tests)/len(fifth_tests)
- emptyList.append(average5th)
- last_tests = [scores[5] for name, scores in a]
- averageLast = sum(last_tests)/len(last_tests)
- emptyList.append(averageLast)
- bestTest = max(emptyList)
- worstTest = min(emptyList)
- print("Najboljše so se odrezali na testu:", bestTest, "Najslabše pa na testu:", worstTest)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement