Aquecimento - 1
try:
num1 = float(input('Digite um número: '))
num2 = float(input('Digite um número: '))
divisao = num1/num2
except Exception as e:
print(type(e), f'Erro: {e}')
Aquecimento - 2
idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
chave = input('Digite o nome: ')
try:
idades[chave]
except KeyError:
print('Nome não encontrado')
else:
print(idades[chave])
Aquecimento - 3
def conversor(lista: list):
try:
lista_convertida = [float(item) for item in lista]
except Exception as e:
print(type(e), f'Erro: {e}')
else:
print(lista_convertida)
finally:
print('Execução encerrada')
lista = [1, 2, 'a', 4]
conversor(2)
Aquecimento - 4
def criacaoTupla(lista1, lista2):
try:
if len(lista1) != len(lista2):
raise IndexError('A quantidade de elementos em cada lista é diferente')
else:
lista_tuplas = list(zip(lista1, lista2, [lista1[i] + lista2[i] for i in range(len(lista1))]))
except Exception as e:
print(type(e), f'Erro: {e}')
else:
return lista_tuplas
lista1 = [4,6,7,9,'A']
lista2 = [-4,'E',8,7,9]
print(criacaoTupla(lista1, lista2))
Projeto - 5
def contarAcertos(respostas, gabarito):
acertos = 0
for i in range(len(respostas)):
if respostas[i] == gabarito[i]:
acertos +=1
return acertos
def verificarErros(teste, gabarito):
try:
for resposta in teste:
for i in range(len(resposta)):
if resposta[i] not in ['A', 'B', 'C', 'D']:
raise ValueError(f'A alternativa {resposta[i]} não é uma opção de alternativa válida')
lista_soma_acertos = [contarAcertos(item, gabarito) for item in teste]
except Exception as e:
print(type(e), f'Erro: {e}')
else:
print(lista_soma_acertos)
finally:
print('Finalizado!')
gabarito = ['D', 'A', 'B', 'C', 'A']
testes_sem_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'C', 'A'], ['D', 'B', 'A', 'C', 'A']]
testes_com_ex = [['D', 'A', 'B', 'C', 'A'], ['C', 'A', 'A', 'E', 'A'], ['D', 'B', 'A', 'C', 'A']]
verificarErros(testes_sem_ex, gabarito)
verificarErros(testes_com_ex, gabarito)
Projeto - 6
'''
Recebe ua lista com palavras separadas de uma frase
Criar função:
- Verificar se o tratamento para retirada se simbolos foi realizado
if not: Value error que aponte o 1º caso em que foi detectado o uso de pontuação
'''
def verificaTratamento (lista):
simbolos = [',', '.', '!', '?']
try:
for palavra in lista:
if ',' in palavra or '.' in palavra or '!' in palavra or '?' in palavra:
raise ValueError(f'O texto apresenta pontuações na palavra "{palavra}"')
except Exception as e:
listaTratada = False
print(e)
else:
listaTratada = True
finally:
return listaTratada
lista_tratada = ['Python', 'é', 'uma', 'linguagem', 'de', 'programação', 'poderosa', 'versátil',
'e', 'fácil', 'de', 'aprender', 'utilizada', 'em', 'diversos', 'campos', 'desde',
'análise', 'de', 'dados', 'até', 'inteligência', 'artificial']
lista_nao_tratada = ['Python', 'é', 'uma', 'linguagem', 'de', 'programação', 'poderosa,', 'versátil',
'e', 'fácil,', 'de', 'aprender', 'utilizada', 'em', 'diversos', 'campos,', 'desde',
'análise', 'de', 'dados', 'até', 'inteligência', 'artificial!']
print(f'Lista tratada: {verificaTratamento(lista_tratada)}')
print(f'Lista tratada: {verificaTratamento(lista_nao_tratada)}')
Projeto - 7
def divide_colunas(pressao: list, temp: list) -> list:
'''
Primeiro Argumento -> pressão (lista)
Segundo Argumento -> temperatura (lista)
Exceções tratadas:
Verificar se as listas tem o mesmo tamanho (ValueError)
Verificar se existe alguma divisão por zero (ZeroDivisionError)
Retorna uma lista com os valores da divisão da pressão pela teperatura
'''
try:
if len(pressao) != len(temp):
raise ValueError('Listas de dados com tamanho diferente')
elif 0 in temp:
raise ZeroDivisionError('Existe um valor zero na coluna da temperatura, portanto é impossível realizar a divisão')
else:
compilado = list(zip(pressao, temp, [pressao[i]/temp[i] for i in range(len(pressao))]))
except Exception as e:
print(e)
return 'Não foi possível dividir as colunas'
else:
return compilado
pressoes = [100, 120, 140, 160, 180]
temperaturas = [20, 25, 30, 35, 40]
print(divide_colunas(pressoes, temperaturas))
pressoes = [60, 120, 140, 160, 180]
temperaturas = [0, 25, 30, 35, 40]
print(divide_colunas(pressoes, temperaturas))
pressoes = [100, 120, 140, 160]
temperaturas = [20, 25, 30, 35, 40]
print(divide_colunas(pressoes, temperaturas))