1
resposta

Desafio - Aquecimento

# Desafio: hora da prática
# 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.

try:
  a = float(input('Digite o numerador para a divisão: '))
  b = float(input('Digite o denominador para a divisão: '))
  resultado = a/b
except ZeroDivisionError:
  print('O denominador não pode ser zero!')
except ValueError:
  print('Só podem ser entrados dados no formato de número e não texto!')
else:
  print(resultado)
finally:
  print('Fim!')

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

try:
  pessoa = input('Digite o nome de uma pessoa para saber a sua idade: ')
  print(f'A idade de {pessoa} é {idades[pessoa]}')
except KeyError:
  print(f'A pessoa {pessoa} não existe na base de dados!')
finally:
  print('Fim!')

#3. Crie uma função que recebe uma lista como parâmetro e converta todos os valores da lista para float. 

def converte_elemento(lista: list=[0]):
  for elemento in lista:
    lista[lista.index(elemento)] = float(elemento)
  return lista

try:
  lista = []
  for i in range(1,11):
    lista.append(input(f'Informe o elemento {i} da lista (deve ser um número): '))
  lista = converte_elemento(lista)
except ValueError:
  print('A lista só pode conter números!')
else:
  print('Lista convertida para float com sucesso!')
finally:
  print('Fim da execução da função!')

#4. Crie uma função que recebe duas listas como parâmetros e agrupe os elementos um a um das listas

#Valores sem erro:
lista1 = [4,6,7,9,10]
lista2 = [-4,6,8,7,9]
#Listas com tamanhos diferentes: 
#lista1 = [4,6,7,9,10,4]
#lista2 = [-4,6,8,7,9]
#Listas com valores incoerentes: => TypeError
#lista1 = [4,6,7,9,'A']
#lista2 = [-4,'E',8,7,9]

def mescla_listas(lista1, lista2: list=[0]):
  if len(lista1) == len(lista2):
    tupla_lista = list( (elemento1, elemento2, elemento1 + elemento2) for elemento1, elemento2 in zip(lista1, lista2))
    return tupla_lista
  else:
    raise ValueError('As listas possuem tamanhos diferentes!')

try:
  tupla_lista = mescla_listas(lista1, lista2)
except ValueError as mensagem:
  print(mensagem)
except TypeError:
  print('As listas possuem valores incoerentes')
else:
  print(tupla_lista)
finally:
  print('Fim!')
1 resposta

Olá, Vinicius! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do tratamento de exceções para tornar o programa mais robusto, utilizou muito bem as funções para organizar a lógica em blocos reutilizáveis e ainda compreendeu a importância das estruturas condicionais para validar entradas e evitar erros de execução.

Uma dica interessante para o futuro é aplicar o método enumerate ao percorrer listas, facilitando a manipulação dos índices sem precisar usar index. Assim:

def converte_elemento(lista: list=[0]):
    for i, elemento in enumerate(lista):
        lista[i] = float(elemento)
    return lista

Isso faz com que a conversão seja mais eficiente e evita problemas caso existam elementos repetidos na lista.

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!