Buscar

Etapa Avaliar - Python para desenvolvimento de Inteligência Artificial_ do básico às aplicações avançadas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Avaliação Capítulo 3: Python para desenvolvimento de Inteligência Artificial: do
básico às aplicações avançadas
0 de 0 pontos
1) Você está trabalhando em um sistema de processamento de pedidos e precisa
verificar a integridade dos dados antes de continuar com o processamento. Um loop
itera sobre uma lista de números de pedidos; se encontrar um número de pedido
negativo, o loop deve parar imediatamente, indicando um problema nos dados. Qual
será o valor de j quando o loop for interrompido?
numeros_de_pedidos = [1023, 1204, 1122, -1, 1302]
j = 0
while j < len(numeros_de_pedidos):
if numeros_de_pedidos[j] < 0:
break
j += 1
*
A) 4
B) 3
C) 2
D) 1
E) 0
Resposta correta
B) 3
Feedback
O loop itera sobre a lista numeros_de_pedidos e verifica cada elemento para ver se é um número
negativo. O loop deve parar imediatamente quando encontra um número negativo, que é o sinal de
um problema nos dados.
Na lista numeros_de_pedidos = [1023, 1204, 1122, -1, 1302], o primeiro número negativo aparece
na quarta posição da lista (índice 3, já que a indexação começa em 0).
O loop inicia com j = 0 e incrementa j a cada iteração (j += 1). O loop verifica cada elemento até
que encontre o número -1. Quando encontra -1, a condição if numeros_de_pedidos[j] < 0: é
satisfeita e a instrução break é executada, interrompendo o loop. Neste ponto, j é igual a 3, pois o
loop já incrementou j três vezes (0 para 1, 1 para 2, 2 para 3) antes de encontrar o número
negativo.
Portanto, o valor de j quando o loop é interrompido é 3.
2) Você está trabalhando em um sistema de monitoramento de qualidade do ar,
onde os dados de várias estações são registrados em uma matriz. Cada linha
representa uma hora diferente do dia e cada coluna representa uma estação de
monitoramento diferente. Você também tem um dicionário que associa cada índice
de coluna à respectiva estação de monitoramento. Seu objetivo é identificar e
imprimir as estações de monitoramento que registraram níveis de poluição acima de
um certo limite (por exemplo, 150) em qualquer hora do dia, juntamente com a hora
em que isso ocorreu. Qual será a saída do seguinte código? Considere que a
indexação das horas começa em 0 e o mapeamento das estações é fornecido pelo
dicionário estacoes. A saída deve indicar claramente em qual hora e em qual
estação o nível de poluição excedeu o limite. poluicao = [[120, 160, 140], [180, 110,
90], [130, 200, 120]]
estacoes = {0: 'Centro', 1: 'Norte', 2: 'Sul'}
limite = 150
for i, hora in enumerate(poluicao):
for j, nivel in enumerate(hora):
if nivel > limite:
print(f"Hora {i}, Estação {estacoes[j]}: {nivel}")
*
A) Hora 0, Estação Norte: 160, Hora 1, Estação Centro: 180, Hora 2, Estação Norte: 200
B) Hora 0, Estação Centro: 160, Hora 1, Estação Norte: 180, Hora 2, Estação Sul: 200
C) Centro: 180, Norte: 160, 200, Sul: 140
D) Hora 0, Estação Norte: 160, Hora 1, Estação Centro: 180, Hora 2, Estação Norte: 200,
Hora 2, Estação Sul: 120
E) nenhuma das alternativas anteriores
Resposta correta
A) Hora 0, Estação Norte: 160, Hora 1, Estação Centro: 180, Hora 2, Estação Norte: 200
Feedback
O código está percorrendo a matriz poluicao, onde cada linha representa uma hora diferente do dia
e cada coluna representa uma estação de monitoramento. O loop aninhado verifica o nível de
poluição em cada estação a cada hora. Quando o nível de poluição excede o limite definido (150
no caso), a informação é impressa.
Na matriz poluicao = [[120, 160, 140], [180, 110, 90], [130, 200, 120]]:
Na primeira hora (i=0), a estação Norte (índice de coluna j=1) tem um nível de poluição de 160, que
é maior que o limite.
Na segunda hora (i=1), a estação Centro (índice de coluna j=0) tem um nível de poluição de 180,
que também é maior que o limite.
Na terceira hora (i=2), a estação Norte (índice de coluna j=1) tem um nível de poluição de 200,
novamente maior que o limite.
Consequentemente, as impressões correspondentes às estações e horas onde os níveis de
poluição excedem o limite são:
"Hora 0, Estação Norte: 160"
"Hora 1, Estação Centro: 180"
"Hora 2, Estação Norte: 200"
As outras opções não correspondem aos dados e à lógica do código fornecidos:
A opção b) mistura os nomes das estações com os índices errados.
A opção c) não fornece informações sobre as horas e apresenta os dados de forma agregada, o
que não corresponde à saída do código.
A opção d) inclui uma leitura incorreta da Estação Sul na Hora 2.
A opção e) é a opção "nenhuma das anteriores", que não é correta neste caso.
3) Considere o seguinte trecho de código Python:
soma = 0
for i in range(1, 11, 2):
soma += i
Qual é o valor final de soma após a execução do loop for?
*
A) 25
B) 30
C) 20
D) 15
E) 10
Resposta correta
A) 25
Feedback
Este código define uma variável soma com valor inicial 0 e itera um loop for sobre um intervalo de
números de 1 a 10 (o segundo argumento do range é não-inclusivo), com um passo de 2. Isso
significa que i tomará os valores ímpares de 1 a 9 (inclusive). Em cada iteração, o código soma o
valor atual de i à variável soma.
Os valores de i que serão somados são: 1, 3, 5, 7 e 9.
Vou somar esses números e fornecer o resultado.
O valor final de soma após a execução do loop for é 25. Portanto, a alternativa correta é a A) 25.
4) Em um sistema de controle de acesso, o acesso é permitido apenas durante o
horário comercial (das 9h às 18h) e se a pessoa tiver uma autorização especial.
Analise o seguinte código:
hora_atual = 17
tem_autorizacao = True
if 9 <= hora_atual < 18 and tem_autorizacao:
acesso_permitido = True
else:
acesso_permitido = False
A pessoa conseguirá acessar o sistema?
*
A) Não, porque não está no horário comercial.
B) Sim, porque tem autorização especial.
C) Não, porque não tem autorização especial.
D) Sim, porque está no horário comercial e tem autorização.
E) Não é possível determinar com as informações fornecidas.
Resposta correta
D) Sim, porque está no horário comercial e tem autorização.
Feedback
De acordo com o código:
hora_atual é igual a 17, o que significa que são 17h.
tem_autorizacao é True, indicando que a pessoa tem autorização especial.
O código permite acesso (acesso_permitido = True) se for dentro do horário comercial (das 9h às
18h) e se a pessoa tiver autorização especial.
Como a hora_atual é 17, isso está dentro do horário comercial especificado de 9h às 18h. Além
disso, a pessoa tem autorização especial (tem_autorizacao = True). Portanto, a condição do if é
verdadeira e acesso_permitido será definido como True.
A alternativa correta é:
D) Sim, porque está no horário comercial e tem autorização.
5) Imagine que você está desenvolvendo um jogo de trivia em Python e precisa
calcular a pontuação final de um jogador com base nas respostas corretas. A
pontuação para cada resposta correta segue uma regra específica: ela é igual ao
quadrado do número da questão. Por exemplo, a pontuação da primeira pergunta
correta é 1 (1²), da segunda é 4 (2²), e assim por diante. Você escreve o seguinte
código para calcular a pontuação total com base em um array respostas_corretas,
que contém os números das perguntas que o jogador acertou:
respostas_corretas = [1, 2, 4, 5]
pontuacao_total = 0
for questao in respostas_corretas:
pontuacao_total += questao ** 2
Qual é a pontuação final do jogador?
*
A) 30
B) 54
C) 46
D) 50
E) 40
Resposta correta
C) 46
Feedback
Para calcular a pontuação final do jogador com base no código fornecido, precisamos seguir os
passos dados no loop. O código multiplica cada número da pergunta correta pelo quadrado desse
número e adiciona esse valor à pontuação total. O código para calcular isso seria interpretado da
seguinte forma:
respostas_corretas = [1, 2, 4, 5]
pontuacao_total = 0
for questao in respostas_corretas:
pontuacao_total += questao ** 2
Se seguirmos o código como está, as pontuações seriam:
Para a pergunta 1: 1² =1
Para a pergunta 2: 2² = 4
Para a pergunta 4: 4² = 16
Para a pergunta 5: 5² = 25
Vamos somar essesvalores para encontrar a pontuação total correta.
A pontuação final do jogador, de acordo com o código e a regra de pontuação fornecidos, é 46.
Portanto, a alternativa correta é a C) 46.
6) Em um programa Python para um sistema de gerenciamento de biblioteca, você
está mantendo o registro do número total de livros e o número de novos livros
adicionados mensalmente. Inicialmente, há 1000 livros. A cada mês, 50 novos livros
são adicionados. Após três meses, um novo requisito é introduzido: a cada mês
subsequente, além dos 50 novos livros, 10 livros são retirados da biblioteca. Qual
trecho de código a seguir corretamente calcula o número total de livros após 5
meses?
*
A)
B)
C)
D)
E)
Resposta correta
E)
Feedback
A lógica que estamos buscando é aquela que começa com 1000 livros e adiciona 50 novos livros a
cada mês durante 5 meses. A partir do quarto mês, também devemos subtrair 10 livros a cada
mês.
Opção A: Este código adiciona 50 livros a cada um dos 5 meses, mas não subtrai os 10 a partir do
quarto mês.
Opção B: Este código está incorreto porque adiciona 40 livros em vez de subtrair 10 a partir do
quarto mês. Além disso, ele adiciona 50 livros nos primeiros 3 meses.
Opção C: Este código adiciona 50 livros a cada mês e subtrai 10 livros a partir do terceiro mês.
Esta é quase a lógica que queremos, mas precisamos subtrair 10 a partir do quarto mês, não do
terceiro.
Opção D: Este código está incorreto porque subtrai 10 livros nos primeiros 3 meses e adiciona 40
nos últimos 2 meses, o que não está de acordo com o enunciado.
Opção E: Este código adiciona 50 livros a cada mês e subtrai 10 livros a partir do quarto mês, que
é exatamente a lógica que estamos procurando.
A opção correta é a E, pois ela segue a lógica exata descrita no enunciado do problema.
7) Você está desenvolvendo um sistema de análise de texto e precisa verificar a
presença de certas palavras-chave em uma mensagem recebida. Se uma
mensagem contém qualquer uma das palavras-chave, o sistema deve imprimir a
palavra-chave encontrada e a posição em que ela aparece na mensagem pela
primeira vez. Qual será a saída do seguinte código? Considere que a mensagem e as
palavras-chave são fornecidas como strings e que a indexação começa em 0.
mensagem = "O clima está agradável hoje, perfeito para um piquenique no parque."
palavras_chave = ["chuva", "sol", "neve", "tempestade", "agradável"]
for palavra in palavras_chave:
posicao = mensagem.find(palavra)
if posicao != -1:
print(f"Palavra-chave '{palavra}' encontrada na posição {posicao}")
*
A) Palavra-chave 'clima' encontrada na posição 2
B) Palavra-chave 'sol' encontrada na posição 15
C) Palavra-chave 'agradável' encontrada na posição 15
D) Palavra-chave 'agradável' encontrada na posição 13
E) Palavra-chave 'piquenique' encontrada na posição 34
Resposta correta
D) Palavra-chave 'agradável' encontrada na posição 13
Feedback
O código itera sobre a lista palavras_chave e verifica a presença de cada palavra na mensagem
usando o método .find(). Esse método retorna a posição inicial da primeira ocorrência da palavra
na mensagem, ou -1 se a palavra não for encontrada.
Na mensagem = "O clima está agradável hoje, perfeito para um piquenique no parque.", a única
palavra da lista palavras_chave = ["chuva", "sol", "neve", "tempestade", "agradável"] que está
presente na mensagem é "agradável".
A contagem das posições na string começa em 0. A palavra "agradável" inicia após "O clima está ",
que possui 12 caracteres (incluindo espaços e vírgula), o que significa que a primeira letra de
"agradável" está na posição 13 (começando a contar do 0).
Portanto, quando o método .find() procura por "agradável", ele retorna 13, e a mensagem
correspondente é impressa, confirmando que a opção d) "Palavra-chave 'agradável' encontrada na
posição 13" é a correta.
8) Você está desenvolvendo uma função em Python que deve processar uma string
de entrada. A string contém várias palavras separadas por espaços e pode incluir
pontuações. A função deve realizar as seguintes operações:
1- Remover todas as pontuações da string. 2- Inverter a ordem das palavras na
string. 3- Converter todas as letras para maiúsculas. 4- Retornar a string processada.
Por exemplo, se a string de entrada for "Olá, mundo!", a saída deve ser "MUNDO
OLÁ".
Qual das seguintes implementações atende corretamente a esses requisitos?
*
A)
B) C)
D)E) Resposta correta: C) Feedback A alternativa
correta é a C), e aqui está o porquê:
Remove todas as pontuações da string: A função str.translate(str.maketrans('', '',
string.punctuation)) substitui todas as pontuações definidas em string.punctuation por uma string
vazia, efetivamente removendo-as.
Inverte a ordem das palavras na string: A expressão palavras[::-1] inverte a lista de palavras. A
função split() divide a string em uma lista de palavras, e [::-1] inverte essa lista.
Converte todas as letras para maiúsculas: O método upper() é chamado em toda a string
reconstruída para converter todas as letras para maiúsculas.
Retorna a string processada: O método join() é utilizado para reconstruir a string a partir da lista de
palavras invertida, e o resultado é retornado.
As outras alternativas falham por várias razões:
A) e B) utilizam uma expressão regular que não está correta para remover todas as pontuações.
Elas parecem tentar manter os caracteres que não são palavras (\W), o que não é o que queremos.
D) não remove todas as pontuações corretamente e utiliza o método capitalize() que só irá
capitalizar a primeira letra da string resultante, em vez de todas as letras.
E) usa uma compreensão de lista para converter todos os caracteres alfabéticos para maiúsculas
antes de dividir a string, o que irá capitalizar cada letra, mas não remove pontuações e a função
reversed(palavras) não é aplicada corretamente para gerar uma string. Ela retorna um iterador
reverso, que não pode ser diretamente unido com join.
Portanto, a opção C) é a implementação que atende corretamente a todos os requisitos listados.
9) Em um projeto de análise de dados para prever tendências de mercado usando
aprendizado de máquina, você precisa limpar e formatar um grande conjunto de
dados. Qual biblioteca Python é mais indicada para manipular esses dados,
oferecendo funcionalidades como tratamento de valores ausentes, conversão de
tipos de dados e filtragem de linhas ou colunas?
A) Keras
B) PyTorch
C) Pandas
D) TensorFlow
E) Matplotlib
Resposta correta
C) Pandas
Feedback
A alternativa correta é:
C) Pandas
Porque: Pandas é uma biblioteca de software escrita para a linguagem de programação Python
para manipulação e análise de dados. Oferece estruturas de dados e operações para manipular
tabelas numéricas e séries temporais. É particularmente bem adequada para a realização de
tarefas de limpeza e formatação de conjuntos de dados grandes, tais como tratamento de valores
ausentes, conversão de tipos de dados e filtragem de linhas ou colunas. Isso a torna uma
ferramenta indispensável para análise de dados e pré-processamento de dados para aprendizado
de máquina.
As outras bibliotecas listadas têm propósitos diferentes:
A) Keras e D) TensorFlow são bibliotecas de aprendizado profundo utilizadas para construir e
treinar modelos de aprendizado de máquina, não para limpeza e formatação de dados.
B) PyTorch é outra biblioteca de aprendizado profundo e também não é projetada para
manipulação direta de dados.
E) Matplotlib é uma biblioteca de plotagem para a linguagem de programação Python e sua
extensão matemática NumPy. É usada para criar gráficos estáticos, interativos e animados, mas
não para a limpeza e formatação de dados.
10) Suponha que você está trabalhando com visualização de dados usando a
biblioteca Matplotlib em Python. Você recebeu um conjunto de dados contendo
informações sobre as vendas mensais de diferentes categorias de produtos ao
longo de um ano. Seu objetivo é criar um gráfico de linhas para visualizar as
tendências de vendas dessas categorias aolongo do ano.
Considere o seguinte código Python utilizando Matplotlib:
import matplotlib.pyplot as plt
import numpy as np
# Dados: vendas mensais de 3 categorias de produtos ao longo de um ano
meses = np.arange(1, 13)
categoria_a = np.random.randint(100, 200, size=12)
categoria_b = np.random.randint(150, 250, size=12)
categoria_c = np.random.randint(50, 150, size=12)
plt.figure(figsize=(10, 5))
plt.plot(meses, categoria_a, label='Categoria A', color='blue', marker='o')
plt.plot(meses, categoria_b, label='Categoria B', color='red', linestyle='--')
plt.plot(meses, categoria_c, label='Categoria C', color='green', linestyle='-.', marker='x')
plt.title('Vendas Mensais por Categoria de Produto')
plt.xlabel('Mês')
plt.ylabel('Vendas')
plt.legend()
plt.grid(True)
plt.xticks(meses)
plt.yticks(range(0, 301, 50))
Com base no código fornecido, qual das seguintes visualizações será gerada?
A) Um gráfico de linhas com três linhas de cores diferentes, cada uma representando uma
categoria de produto. As linhas para as categorias A e C têm marcadores em cada ponto de
dados, enquanto a linha para a categoria B é tracejada.
B) Um gráfico de barras com três conjuntos de barras, cada conjunto representando um
mês e cada barra dentro de um conjunto representando uma categoria de produto.
C) Um gráfico de dispersão com três grupos de pontos, cada grupo representando uma
categoria de produto. Os pontos são coloridos de acordo com a categoria.
D) Um gráfico de linhas com uma única linha, representando a soma total das vendas de
todas as categorias para cada mês.
E) Um gráfico de linhas com três linhas de cores diferentes, mas todas as linhas são
contínuas e sem marcadores, representando cada categoria de produto.
Resposta correta
A) Um gráfico de linhas com três linhas de cores diferentes, cada uma representando uma
categoria de produto. As linhas para as categorias A e C têm marcadores em cada ponto
de dados, enquanto a linha para a categoria B é tracejada.
Feedback
O código está usando a função plt.plot() do Matplotlib para criar gráficos de linhas. Cada chamada
a plt.plot() adiciona uma nova linha ao gráfico. No código fornecido, há três chamadas a plt.plot(),
uma para cada categoria de produto (A, B e C), o que significa que haverá três linhas no gráfico.
Para a categoria A, a linha é configurada com a cor azul (color='blue') e marcadores circulares em
cada ponto de dados (marker='o').
Para a categoria B, a linha é configurada com a cor vermelha (color='red') e um estilo de linha
tracejada (linestyle='--'). Não há marcadores especificados para esta linha.
Para a categoria C, a linha é configurada com a cor verde (color='green'), um estilo de linha de
traço-ponto (linestyle='-.') e marcadores em forma de 'x' (marker='x').
As outras opções não correspondem ao código fornecido:
A opção b) descreve um gráfico de barras, mas o código está criando um gráfico de linhas.
A opção c) descreve um gráfico de dispersão, mas novamente, o código está criando um gráfico
de linhas.
A opção d) menciona uma única linha representando a soma total das vendas, o que não
corresponde ao código que desenha três linhas separadas para cada categoria.
A opção e) afirma que todas as linhas são contínuas e sem marcadores, o que não é verdade
conforme a configuração das linhas para as categorias A e C no código.

Mais conteúdos dessa disciplina