1:
try:
numero_1 = float(input())
numero_2 = float(input())
divisao = numero_1 / numero_2
print(f"Resultado da divisão: {divisao}")
except Exception as e:
print(f"Tipo do erro: {type(e)}")
print(f"Mensagem de Erro: {e}")
5
0
Tipo do erro: <class 'ZeroDivisionError'>
Mensagem de Erro: float division by zero
2:
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
try:
chave = input()
valor = idades[chave]
except KeyError:
print('Nome não encontrado')
else:
print(valor)
Carol
23
3:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def converterParaFloat (lista:list):
try:
novaLista = [float(item) for item in lista]
except Exception as e:
print(f'Tipo do erro: {type(e)}, erro: {e}')
else:
return novaLista
finally:
print('Fim da execução da função')
print(converterParaFloat(numeros))
Fim da execução da função
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
4:
def agrupar(lista1:list, lista2:list):
try:
if len(lista1) != len(lista2):
raise IndexError('A quantidade de elementos em cada lista é diferente.')
soma = [lista1[i] + lista2[i] for i in range(len(lista1))]
agrupamento = zip(lista1,lista2,soma)
except Exception as e:
print(f'Tipo de erro: {type(e)}, erro: {e}')
return []
else:
return list(agrupamento)
print(agrupar(lista1,lista2))
Valores sem erro
[(4, -4, 0), (6, 6, 12), (7, 8, 15), (9, 7, 16), (10, 9, 19)]
Listas com tamanhos diferentes:
Tipo de erro: <class 'IndexError'>, erro: A quantidade de elementos em cada lista é diferente.
[]
Listas com valores incoerentes:
Tipo de erro: <class 'TypeError'>, erro: unsupported operand type(s) for +: 'int' and 'str'
[]
5:
Função para correção das notas
gabarito = ['D', 'A', 'B', 'C', 'A']
def corretor(testes: list):
pontuacoes = []
try:
for teste in testes:
nota = 0
for i in range(len(teste)):
if teste[i] not in ['A', 'B', 'C', 'D']:
raise ValueError(f'A alternativa {teste[i]} não é uma opção de alternativa válida')
elif teste[i] == gabarito[i]:
nota += 1
pontuacoes.append(nota)
except Exception as e:
print(e)
else:
return pontuacoes
Testando no exemplo que não lança exceção
testes_sem_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'C', 'A'], ['D', 'B', 'A', 'C', 'A']]
print(corretor(testes_sem_ex))
[5, 3, 3]
Testando no exemplo que lança exceção
testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'], ['D', 'B', 'A', 'C', 'A']]
print(corretor(testes_com_ex))
A alternativa E não é uma opção de alternativa válida
None
6:
def avalia_texto(texto: list):
for palavra in texto:
if ',' in palavra or '.' in palavra or '!' in palavra or '?' in palavra:
raise ValueError(f'O texto apresenta pontuações na palavra "{palavra}".')
return "Texto já tratado!"
Testando não lança exceção
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:
avaliacao = avalia_texto(lista_tratada)
except Exception as e:
print(e)
else:
print(avaliacao)
Texto já tratado!
Testando lança exceção
lista_nao_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:
avaliacao = avalia_texto(lista_nao_tratada)
except Exception as e:
print(e)
else:
print(avaliacao)
O texto apresenta pontuações na palavra "poderosa,".
7:
def divide_colunas(lista_1: list, lista_2: list) -> list:
try:
if len(lista_1) != len(lista_2):
raise ValueError("As listas precisam ter o mesmo tamanho")
resultado = [round(a / b, 2) for a, b in zip(lista_1, lista_2)]
except ValueError as e:
print(e)
except ZeroDivisionError as e:
print(f"{e}: A 2ª lista não pode possuir um valor igual a 0")
else:
return resultado
Testando não lança exceção
pressoes = [100, 120, 140, 160, 180]
temperaturas = [20, 25, 30, 35, 40]
divide_colunas(pressoes, temperaturas)
[5.0, 4.8, 4.67, 4.57, 4.5]
Testando lança exceção (ZeroDivisionError)
pressoes = [60, 120, 140, 160, 180]
temperaturas = [0, 25, 30, 35, 40]
divide_colunas(pressoes, temperaturas)
division by zero: A 2ª lista não pode possuir um valor igual a 0
Testando lança exceção (ValueError)
pressoes = [100, 120, 140, 160]
temperaturas = [20, 25, 30, 35, 40]
divide_colunas(pressoes, temperaturas)
As listas precisam ter o mesmo tamanho