Desafio: hora da prática
def divisao(a, b) -> float:
if b == 0:
raise ValueError("Não é possível dividir por zero")
return a / b
try:
valor1 = float(input("Digite o primeiro valor: "))
valor2 = float(input("Digite o segundo valor: "))
resultado = divisao(valor1, valor2)
except ValueError as e:
print(f"Erro: {e}. Certifique-se de digitar números válidos.")
except Exception as e:
print(f"Ocorreu um erro inesperado: {e}")
else:
print(f"Resultado da divisão: {resultado}")
finally:
print("Divisão concluída")
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
def mostrar_idade(nome):
if nome in idades:
return idades[nome]
else:
raise KeyError("Nome não encontrado")
nome = input("Digite um nome: ")
try:
idade = mostrar_idade(nome)
except KeyError as e:
print(f"Erro: {e}")
else:
print(f"A idade de {nome} é {idade}.")
finally:
print("Programa finalizado.")
- def floater(lista) -> list:
try:
lista_real = []
for element in lista:
lista_real.append(float(element))
except ValueError:
print("Erro: Há um ou mais números inválidos na lista.")
return None
except TypeError:
print("Erro: Há um ou mais elementos não numéricos na lista.")
return None
except Exception as e:
print(f"Erro inesperado: {e}")
return None
else:
return lista_real
finally:
print("Fim da execução da função")
lista_exemplo = [1, 3, 10, 25, {}, 40]
lista_real = floater(lista_exemplo)
if lista_real is not None:
print(f"Lista convertida: {lista_real}")
else:
print("A conversão da lista falhou.")
- def agrupar(lista1, lista2) -> tuple:
try:
length = max(len(lista1), len(lista2))
tupla_nova = tuple((lista1[i], lista2[i], lista1[i] + lista2[i]) for i in range(length))
except ValueError:
print("Erro: Um ou mais elementos nas listas não podem ser somados ou convertidos.")
return None
except IndexError:
print("Erro: Há uma disparidade no tamanho das listas para a operação de agrupamento.")
return None
except TypeError:
print("Erro: Há um ou mais elementos nas listas com tipos incompatíveis para as operações (ex: dicionários, conjuntos, letras).")
return None
except Exception as e:
print(f"Erro inesperado: {e}")
return None
else:
return tupla_nova
finally:
print("Fim da execução da função agrupar.")
lista1 = [4,6,7,9,10]
lista2 = [-4,6,8,7,9]
print("\n--- Primeira chamada da função ---")
resultado1 = agrupar(lista1, lista2)
if resultado1 is not None:
print(f"Resultado da primeira chamada: {resultado1}")
lista1 = [4,6,7,9,10,4] # Nova lista1 com tamanho diferente
lista2 = [-4,6,8,7,9]
print("\n--- Segunda chamada da função ---")
resultado2 = agrupar(lista1, lista2)
if resultado2 is not None:
print(f"Resultado da segunda chamada: {resultado2}")
lista1 = [4,6,7,9,'A']
lista2 = [-4,'E',8,7,9]
print("\n--- Terceira chamada da função ---")
resultado3 = agrupar(lista1, lista2)
if resultado2 is not None:
print(f"Resultado da terceira chamada: {resultado3}")