1
resposta

Desafio pratica

#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.

try:
numero_1 = float(input('Digite um número: '))
numero_2 = float(input('Digite outro número: '))
except ValueError:
print('O tipo de caracter digitado é inválido!')
print('Digite novamente')
numero_1 = float(input('Digite um número: '))
numero_2 = float(input('Digite outro número: '))
finally:
divisao = numero_1 / numero_2
print(f'Resultado da divisão: {round(divisao, 2)}')

#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}
chave = input('Digite uma chave: ')
chave = chave.capitalize()

try:
idades[chave]
except KeyError:
print('Nome não encontrado')
else:
print(idades[chave])

#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'.
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))

#4. Crie uma função que recebe duas listas como parâmetros e agrupe os elementos um a um das listas, formando uma lista de tuplas de 3 elementos, no qual o primeiro e segundo elemento da tupla são os valores na posição i das listas e o terceiro elemento é a soma dos valores na posição i das listas.
from logging import exception

#A função deve conter um tratamento de erro indicando o tipo de erro gerado e retornar como resultado a lista de tuplas. Caso as listas enviadas como parâmetro tenham tamanhos diferentes, a função deve retornar um IndexError com a frase: 'A quantidade de elementos em cada lista é diferente.' Dados para testar a função:

lista1 = [5,5,5,6,7,9]
lista2 = [-4,6,8,7,9]

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))

1 resposta

Olá! Como vai?

Parabéns pela resolução das atividades!

E para compartilhar códigos de maneira ainda mais organizada aqui no fórum, você pode utilizar a opção abaixo:

Opção inserir bloco de código, da caixa de perguntas do fórum da alura

Após clicar, irá aparecer uma estrutura da seguinte maneira:

Opção de bloco de código sendo illustrada
O resultado será o seguinte:

Copie o seu código aqui

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!