Divisão com tratamento de erros
try:
n1 = float(input("Digite o primeiro número: "))
n2 = float(input("Digite o segundo número: "))divisao = n1 / n2
except ZeroDivisionError as e:
print("Erro: divisão por zero não é permitida.")
except ValueError as e:
print("Erro: entrada inválida. Digite apenas números.")
except Exception as e:
print(type(e), e)
else:
print(f"Resultado: {divisao}")
2. Busca no dicionário com KeyError
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
try:
nome = input("Digite um nome: ")
valor = idades[nome]
except KeyError:
print("Nome não encontrado")
else:
print(valor)
3. Conversão de lista para float com finally
def converte_lista(lista):
try:
nova_lista = [float(x) for x in lista]
except Exception as e:
print(type(e), e)
else:
return nova_lista
finally:
print("Fim da execução da função")
Exemplo
print(converte_lista(["1", "2", "3"]))
4. Agrupamento e soma de listas
def soma_listas(lista1, lista2):
try:
if len(lista1) != len(lista2):
raise ValueError("A quantidade de elementos em cada lista é diferente.")
resultado = [
(lista1[i], lista2[i], lista1[i] + lista2[i])
for i in range(len(lista1))
]
except Exception as e:
print(type(e), e)
else:
return resultado
- Correção de provas (ValueError)
gabarito = ['D', 'A', 'B', 'C', 'A']
def corretor(testes):
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")
if teste[i] == gabarito[i]:
nota += 1
pontuacoes.append(nota)
except Exception as e:
print(e)
else:
return pontuacoes
- Verificação de pontuação em texto (NLP)
def avalia_texto(texto):
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!" - Divisão de colunas com múltiplas exceções
def divide_colunas(lista_1, lista_2):
try:
if len(lista_1) != len(lista_2):
raise ValueError("As listas precisam ter o mesmo tamanho.")
resultado = [a / b for a, b in zip(lista_1, lista_2)]
except ValueError as e:
print(e)
except ZeroDivisionError as e:
print(f"{e}: A segunda lista não pode conter zeros.")
else:
return resultado