Gentileza, me aguardar finalizar os 7 exercícios para só então dar feedack.
Aquecimento
1. Faça um programa que solicite à pessoa usuária digitar dois números float e calcular a divisão entre esses números. O código deve conter um tratamento de erro, indicando o tipo de erro que foi gerado caso a divisão não seja possível de realizar. Teste o programa com o segundo valor numérico do input igual a 0. Também teste utilizando caracteres textuais no input para checar os tipos de erro que ocorrem.
def main():
while True:
try:
numero_1 = float(input("Digite o primeiro número: "))
numero_2 = float(input("Digite o segundo número: "))
resultado = numero_1 / numero_2
print(f'O resultado da divisão é: {resultado}')
break
except Exception as e:
print("Não foi possível realizar a divisão.")
print(f'Tipo de erro: {type(e).__name__}')
print(f'Descrição do erro: {e}')
print(f'Tente novamente...')
if __name__ == "__main__":
main()
Digite o primeiro número: 15
Digite o segundo número: 0
Não foi possível realizar a divisão.
Tipo de erro: ZeroDivisionError
Descrição do erro: float division by zero
Tente novamente...
Digite o primeiro número: 15
Digite o segundo número: três
Não foi possível realizar a divisão.
Tipo de erro: ValueError
Descrição do erro: could not convert string to float: 'três'
Tente novamente...
Digite o primeiro número: 15
Digite o segundo número: 3
O resultado da divisão é: 5.0
2. Faça um programa que solicite à pessoa usuária digitar um texto que será uma chave a ser pesquisada no seguinte dicionário: idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}, armazenando o resultado do valor em uma variável. O código deve conter um tratamento de erro KeyError, imprimindo a informação 'Nome não encontrado', caso ocorra o erro; e imprimir o valor caso não ocorra nenhum. Teste o programa com um nome presente em uma das chaves do dicionário e com um que não esteja no dicionário para verificar a mensagem de erro.
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
while True:
chave = input("Digite o nome que deseja pesquisar: ")
try:
valor = idades[chave]
print(f'Idade encontrada: {valor}')
break
except KeyError:
print("Nome não encontrado. Tente novamente.")
Digite o nome que deseja pesquisar: Leonor
Nome não encontrado. Tente novamente.
Digite o nome que deseja pesquisar: Roberta
Idade encontrada: 17
3. Crie uma função que recebe uma lista como parâmetro e converta todos os valores da lista para float. A função deve conter um tratamento de erro indicando o tipo de erro gerado e retornar a lista caso não tenha ocorrido nenhum erro. Por fim, deve ter a cláusula finally para imprimir o texto: 'Fim da execução da função'.
def converter_para_float(lista):
try:
lista_convertida = [float(item) for item in lista]
return lista_convertida
except Exception as e:
print(f'Ocorreu um erro: {type(e).__name__} - {e}')
finally:
print("Fim da execução da função")
valores = []
print("Digite os números da lista (digite 'sair' para terminar):")
while True:
entrada = input("Digite um número: ")
if entrada.lower() == "sair":
break
try:
numero = float(entrada)
valores.append(numero)
except ValueError:
print("Valor inválido! Tente novamente.")
resultado = converter_para_float(valores)
if resultado:
print("Lista convertida:", resultado)
Digite os números da lista (digite 'sair' para terminar):
Digite um número: 8
Digite um número: 15
Digite um número: dezenove
Valor inválido! Tente novamente.
Digite um número: 19
Digite um número: 28
Digite um número: sair
Fim da execução da função
Lista convertida: [8.0, 15.0, 19.0, 28.0]