Advertisement
pedrolemoz

Calcular média via pastebin

Aug 24th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.75 KB | None | 0 0
  1. from urllib.request import Request
  2. import os, ssl, math, urllib
  3.  
  4. def arredondarMP(mp):
  5.     if len(str(mp)) > 4:
  6.         mp = float(str(mp)[:4])
  7.     if int(str(mp)[-1]) != 0 and len(str(mp)) == 4:
  8.         if int(str(mp)[-1]) > 5:
  9.             arredondamento = math.ceil(float(str(mp)[-2] + "." + str(mp)[-1]))
  10.         else:
  11.             arredondamento = math.trunc(float(str(mp)[-2] + "." + str(mp)[-1]))
  12.         mp = float(str(mp)[:2] + str(arredondamento))
  13.     return mp
  14.  
  15. def calcular(notas, nome, semestre):
  16.     os.system("clear")
  17.     print(f"Aluno: {nome}\nSemestre: {semestre}")
  18.     ira = 0
  19.     cr = 0
  20.     for i in range(int((len(notas) - 1) / 6)):
  21.         offset = 6 * i
  22.         dados = notas[offset + 1].split(", ")
  23.         cadeira = dados[0]
  24.         media = int(dados[1])
  25.         creditos = int(dados[2])
  26.         n1_0 = float(notas[offset + 2][7:])
  27.         n1_1 = float(notas[offset + 3][7:])
  28.         n2_0 = float(notas[offset + 4][7:])
  29.         n2_1 = float(notas[offset + 5][7:])
  30.         af = float(notas[offset + 6][5:])
  31.         n1 = (n1_0 + n1_1) / 2
  32.         n2 = (n2_0 + n2_1) / 2
  33.         mp = ((2 * n1) + (3 * n2)) / 5
  34.         mp = arredondarMP(mp)
  35.         cr += creditos
  36.         if mp > 6:
  37.             situacao = "Aprovado"
  38.             mf = mp
  39.         elif mp < 3:
  40.             situacao = "Reprovado"
  41.             mf = mp
  42.         elif 3 < mp < 6:
  43.             situacao = "Avaliação Final"
  44.             mf = (mp + af) / 2
  45.             if mf > media:
  46.                 situacaoAF = "Aprovado"
  47.             else:
  48.                 situacaoAF = "Reprovado"
  49.         ira += mf * creditos
  50.         print("_" * 25 + "\n")
  51.         print(f"Cadeira: {cadeira} ({media})\n" + "_" * 25 + "\n")
  52.         print(f"Prova 1: {n1_0}\tProva 3: {n2_0}\nProva 2: {n1_1}\tProva 4: {n2_1}\n")
  53.         print(f"N1: {n1:.2f}\t\tN2: {n2:.2f}\n")
  54.         print(f"Média parcial:\t\t{mp:.2f}")
  55.         print(f"Situação parcial:\t{situacao}\n")
  56.         print(f"Média Final:\t\t{mf:.2f}")
  57.         if af == 0:
  58.             print(f"Situação Final:\t\t{situacao}")
  59.         else:
  60.             print(f"Situação Final:\t\t{situacaoAF}")
  61.     print("_" * 25 + "\n")
  62.     print(f"IRA: {ira / cr:.2f}")
  63.  
  64.  
  65. if (not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, "_create_unverified_context", None)):
  66.     ssl._create_default_https_context = ssl._create_unverified_context
  67.  
  68. url = "https://pastebin.com/raw/MBeH7b4G"
  69. headers = {'User-agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11"}
  70. request = Request(url, None, headers)
  71. response = urllib.request.urlopen(request).read()
  72. notas = response.decode('utf-8').split("\n")
  73.  
  74. k = notas[0].split(", ")
  75. nome = k[0]
  76. semestre = k[1]
  77. calcular(notas, nome, semestre)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement