E4.6
def checar_frase(lista):
palavras_com_pontuacao = []
for palavra in lista:
if ',' in palavra or '.' in palavra or '!' in palavra or '?' in palavra: # ou if any(p in palavra for p in [',', '.', '!', '?']):
palavras_com_pontuacao.append(palavra)
try:
if palavras_com_pontuacao:
raise ValueError(f"O texto apresenta pontuações nas palavras: {', '.join(palavras_com_pontuacao)}.")
else:
return("Nenhum erro encontrado. Verificação concluída com sucesso!")
except ValueError as e:
return f"Erro detectado: {e}"
# Listas de teste
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!']
# Usando a função
print(checar_frase(lista_tratada))
print(checar_frase(lista_nao_tratada))
E4.7.
def divide_colunas(pressao, temperatura):
try:
if len(pressao) != len(temperatura):
raise ValueError("Os dados de Pressao e Temperatura possuem tamanhos diferentes.")
elif 0 in temperatura:
raise ZeroDivisionError("Não é possível divisão por temperatura igual a zero!")
else:
razao = [(p, t, round(p / t , 2)) for p, t in zip(pressao, temperatura)]
return razao
except ValueError as t:
return f"Erro detectado: {t}"
except ZeroDivisionError as z:
return f"Erro detectado: {z}"
#Dados sem exceção:
pressoes1 = [100, 120, 140, 160, 180]
temperaturas1 = [20, 25, 30, 35, 40]
print(divide_colunas(pressoes1, temperaturas1))
# Dados com exceção:
# 1) Exceção de ZeroDivisionError
pressoes2 = [60, 120, 140, 160, 180]
temperaturas2 = [0, 25, 30, 35, 40]
print(divide_colunas(pressoes2, temperaturas2))
# 2) Exceção de ValueError
pressoes3 = [100, 120, 140, 160]
temperaturas3 = [20, 25, 30, 35, 40]
print(divide_colunas(pressoes3, temperaturas3))
.