1
resposta

[Projeto] Projeto final

Finalizado os códigos. Com um pouco de auxílio da internet e revisão de algumas aulas, foi possível concluir tudo.

try:
  n1 = float(input('Digite um numéro divisor: '))
  n2 = float(input('Digite um numéro dividendo: '))
  divisao = n1 / n2
except ZeroDivisionError as zd:
  print(f'Erro: {type(zd)}. Não é possível dividir por zero.')
except TypeError as te:
  print(f'Erro: {type(te)}. Os números precisam ser inteiros ou float.')
except ValueError as ve:
  print(f'Erro: {type(ve)}. Os números precisam ser inteiros ou float.')
else:
  print(divisao)
finally:
  print('Consulta encerrada.')
try:
  consulta = str(input('Digite o nome para ser consultado a idade: '))
  idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
  if idades.get(consulta) == None:
    raise KeyError("O nome não foi encontrado na lista.")
except KeyError as ke:
  print(f'Erro {type(ke)}. O nome não foi encontrado na lista.')
else:
  print(f'A idade de {consulta} é de {idades.get(consulta)} anos.')
try:
  lista = [8, 7, 4.5, '6.2']
  lista_float = []

  for x in lista:
    lista_float.append(float(x))
except ValueError as ve:
  print(f'Erro {type(ve)}. São permitidos apenas números na lista.')
except NameError as ne:
  print(f'Erro {type(ne)}. A lista possui uma variável não definida.')
else:
  print(f'A lista foi convertida para float:\n{lista_float}')
finally:
  print('Fim da execução da função.')
lista_1 = [4,6,7,9,3]
lista_2 = [-4,5,8,7,9]
soma_listas = []

def somalistas(lista1, lista2):
  try:
    if len(lista1) != len(lista2):
      raise IndexError('As duas listas precisam ter a mesma quantidade de elementos.')

    for i in range(len(lista1)):
      soma_listas.append(lista1[i] + lista2[i])
  except IndexError as ie:
    print(f'Erro: {type(ie)}. As duas listas precisam ter a mesma quantidade de elementos.')
  except TypeError as te:
    print(f'Erro: {type(te)}. As duas listas precisam conter apenas números como elementos.')
  else:
    listatupla = list(zip(lista1, lista2,soma_listas))
    print(listatupla)
gabarito = ['D', 'A', 'B', 'C', 'A']

testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'B', 'A', 'B', 'A'], ['B', 'B', 'A', 'C', 'A']]

def calculanota(teste):
  #Tratamento de erros
  try:
    for x in teste:
      if len(x) != 5:
        raise IndexError("As respostas dos alunos devem ter 5 alternativas.")
      for i in x:
        if i not in ["A", "B", "C", "D"]:
          raise ValueError("Letra não é uma alternativa possível na lista.")
  except ValueError as ve:
    print(f"Erro: {type(ve)}. Letra não é uma alternativa possível na lista.")
  except IndexError as ie:
    print(f"Erro: {type(ie)}. As respostas dos alunos devem ter 5 alternativas.")
  else:
    #Execução do código
    nota = []
    for x in range(len(teste)):
      listas = [[i, 0] for i in teste[x]]
      for itens in range(len(listas)):
        if listas[itens][0] == gabarito[itens]:
          print(f'{listas[itens][0]} = {gabarito[itens]}. +1 ponto')
          listas[itens][1] = 1
        else:
          print(f'{listas[itens][0]} =/= {gabarito[itens]}.')
        nota.append(listas[itens][1])
      print(f"Nota do aluno {x+1} = {sum(nota)}.\n")
      nota = []
lista_tratada = ['Python', 'é', 'uma!', 'linguagem', 'de', 'programação', 'poderosa', 'versátil',
                'e', 'fácil', 'de', 'aprender', 'utilizada', 'em', 'diversos', 'campos', 'desde',
                'análise', 'de', 'dados', 'até', 'inteligência', 'artificial']

try:
  for x in lista_tratada:
    if ('!') in x or (',') in x or ('.') in x or ('(') in x or (')') in x or ('#') in x or ('@') in x or ('%') in x or (';') in x:
      raise ValueError('A frase possui pontuação.')
except ValueError as ve:
  print(x)
  print(f'Erro: {type(ve)}. A frase possui pontuação.')
else:
  print('A frase não possui pontuação.')
pressoes = [100, 120, 140, 160]
temperaturas = [20, 25, 30, 35, 40]

def divide_colunas(press,temp):
  try:
    if len(press) != len(temp):
      raise ValueError('As listas tem tamanhos diferentes.')

    num_juntos = []
    divisao = []
    juntos = list(zip(press,temp))
    for i in juntos:
      num_juntos.append(i)
    for i in num_juntos:
      divisao.append(round(i[0] / i[1], 4))
    print(divisao)

  except ValueError as ve:
    print(f'Erro: {type(ve)}. Listas tem tamanhos diferentes.')
  except ZeroDivisionError as zde:
    print(f'Erro: {type(zde)}. Não é possível dividir por zero.')  


divide_colunas(pressoes, temperaturas)
1 resposta

Olá Paulino, tudo bem? Espero que sim!

Fico feliz que tenha finalizado o projeto, espero que tenha gostado! Continue se dedicando e colocando em prática seu conhecimento.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!