## 6. Você está trabalhando com processamento de linguagem natural (NLP) e, dessa vez, sua líder requisitou que você criasse um trecho de código que recebe uma lista com as palavras separadas de uma frase gerada pelo ChatGPT.
# Lista de Palavras
lista_palavras = ['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_palavras = ['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!']
# Checando a existência pontuações (',' '.', '!' e '?')
def verificar_pontuacao(palavras):
pontuacoes = [',', '.', '!', '?']
palavras_com_pontuacao = []
for palavra in palavras:
if any(pontuacao in palavra for pontuacao in pontuacoes):
palavras_com_pontuacao.append(palavra)
if palavras_com_pontuacao:
raise ValueError(f'O texto apresenta pontuações nas palavras: {", ".join(palavras_com_pontuacao)}')
# Imprimindo a frase se não houver pontuações
frase = ' '.join(palavras)
print(f'{frase}.')
# Chamada da função com tratamento de erro
try:
verificar_pontuacao(lista_palavras)
except ValueError as e:
print(e)
## 7. Você foi contratado(a) como uma pessoa cientista de dados para auxiliar um laboratório que faz experimentos sobre o comportamento de uma cultura de fungos. O laboratório precisa avaliar constantemente a razão (divisão) entre os dados de pressão e temperatura do ambiente controlado recolhidos durante a experimentação para definir a melhor condição para os testes.
# Listas de Dados
pressoes = [100, 120, 140, 160, 180]
temperaturas = [20, 25, 30, 35, 40 ]
#pressoes = [100, 120, 140, 160]
#temperaturas = [20, 25, 30, 35, 40]
def verificar_dados(pressoes, temperaturas):
# Verificar se as listas têm o mesmo tamanho
if len(pressoes) != len(temperaturas):
raise ValueError("As listas de pressões e temperaturas devem ter o mesmo tamanho.")
# Verificar divisões por zero
for i in range(len(pressoes)):
if temperaturas[i] == 0:
raise ZeroDivisionError(f"Temperatura não pode ser zero na posição {i}.")
# Verificar se os valores são numéricos
for i in range(len(pressoes)):
if not isinstance(pressoes[i], (int, float)) or not isinstance(temperaturas[i], (int, float)):
raise TypeError(f"Os valores de pressão e temperatura devem ser numéricos na posição {i}.")
# Se os dados forem válidos, prosseguir com o cálculo
def calcular_razao(pressoes, temperaturas):
razoes = {}
for i in range(len(pressoes)):
razao = pressoes[i] / temperaturas[i]
razoes[f'Pressão {pressoes[i]} / Temperatura {temperaturas[i]}'] = razao
return razoes
if __name__ == "__main__":
try:
verificar_dados(pressoes, temperaturas)
razoes = calcular_razao(pressoes, temperaturas)
for chave, valor in razoes.items():
print(f"{chave}: {valor:.2f}")
except (ValueError, ZeroDivisionError, TypeError) as e:
print(e)