Prévia do material em texto
Linguagem de Programação
Questão 1
Correta
Questão com problema?
Uma das etapas do trabalho com dados é a preparação ou pré-processamento, que segundo Castro
(2016) quer dizer: "são etapas anteriores à mineração que visam preparar os dados para uma análise
eficiente e eficaz. Essa etapa inclui a limpeza (remoção de ruídos e dados inconsistentes), a
integração (combinação de dados obtidos a partir de múltiplas fontes), a seleção ou redução
(escolha dos dados relevantes à análise) e a transformação (transformação ou consolidação dos
dados em formatos apropriados para a mineração)" (CASTRO, p. 5, 2016). A Figura 1, apresenta
um código com transformação usando a biblioteca pandas.
Figura 1 - Python e biblioteca pandas
Fonte: Elaborada pela autora.
Considerando o código apresentado na Figura 1, avalie as asserções a seguir.
I. No código duas novas colunas são acrescentadas ao DataFrame original. O DataFrame atribui a
todas as linhas os valores atribuídos as colunas.
II. Na linha 9, usa-se o recurso "str" do DataFrame para transformar a coluna "responsável" em
letras maiúsculas.
III. Na linha 10, o método sort_values irá reordenar todas as linhas com base em uma coluna do
DataFrame chamada "data", em ordem decrescente. Essa transformação será salva no próprio
DataFrame.
Assinale a alternativa correta.
Sua resposta
Correta
Somente a asserção I está correta.
Questão 2
Correta
Questão com problema?
Hoje em dia, somos inundados por dados. Estima-se que a quantidade de nova informação
técnica dobre a cada dois anos, e mais de 1,5 hexabyte de informação nova foi gerada nesse ano.
Isso é mais que o gerado durante o período de 5 mil anos antes de nascermos. Uma incrível
quantidade de dados está prontamente disponível para nós na Internet e em outros locais. As
pessoas capazes de analisar essas informações obterão bons empregos, o que será de valor
inestimável em quase qualquer campo (LOCK, p. 4, 2017).
Sobre a utilização da biblioteca pandas voltada para o trabalho com dados na linguagem Python,
avalie as asserções a seguir.
I. pandas possui duas estruturas de dados que são as principais para a análise/manipulação de
dados: a Series e o DataFrame.
II. Uma Series é uma matriz unidimensional, capaz de armazenar apenas dados do tipo inteiro.
III. Um DataFrame é conjunto de Series, ou como a documentação apresenta, um contêiner para
Series
Assinale a alternativa correta.
Sua resposta
Correta
Somente as asserções I e III estão corretas.
Questão 3
Correta
Questão com problema?
Uma visualização informativa serve principalmente ao relacionamento entre o leitor e os dados.
Ele visa a uma apresentação neutra dos fatos de maneira a educar o leitor (embora não
necessariamente o persuadir). As visualizações informativas são frequentemente associadas a
amplos conjuntos de dados e buscam destilar o conteúdo de forma gerenciável e consumível.
Idealmente, eles formam a maior parte das visualizações que a pessoa comum encontra no dia-a-
dia, seja no trabalho, no jornal ou no site de um provedor de serviços (ILIINSKY e STEELE,
2011).
Sobre a biblioteca seaborn, avalie as asserções a seguir.
I. A biblioteca seaborn possui o método barplot(), que é usado para construir gráficos de barras. O
parâmetro estimator=count é usado para construir uma barra contando a quantidade de elementos.
II. O parâmetro "estimator" do método barplot(), possui como valor padrão a média, ou seja, para
o dado selecionado, será exibida uma barra com a média dos valores.
III. O parâmetro estimator=len, usado no método barplot() cria o mesmo gráfico da função
countplot().
Escolha a opção correta.
Sua resposta
Correta
Somente as asserções II e III estão corretas.
Questão 4
Correta
Questão com problema?
Sob uma perspectiva de armazém de dados (data warehouse), o processo de mineração de dados
pode ser visto como um estágio avançado do processamento analítico on-line (on-line analytical
processing – OLAP). Entretanto, a mineração de dados vai muito além do escopo restrito típico de
um OLAP, baseado em métodos de resumo ou sumarização de dados, incorporando técnicas mais
avançadas para a compreensão e a extração de conhecimentos dos dados (CASTRO, p. 6, 2016).
A Figura 1 apresenta um código que trabalha com dados em Python.
Figura 1 - Trabalho com dados em Python
Fonte: Elaborada pela autora.
Considerando o código na Figura 1,
julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
I. ( ) O arquivo dados.csv é estruturado e seus campos são separados por vírgula.
II. ( ) O DataFrame novo_df possui a quantidade de colunas igual ou menor que o DataFrame
df.
III. ( ) O DataFrame novo_df será substituído por um novo DataFrame, cuja quantidade de linhas
será menor ou igual ao novo_df criado na linha 4.
Escolha a opção correta
Sua resposta
Correta
V - V - V
Questão 5
Correta
Questão com problema?
A quantidade de usuários da internet no mundo todo passou de 16 milhões de pessoas em 1995
para aproximadamente 2,8 bilhões em 2013; a quantidade de artigos publicados apenas em inglês
na Wikipédia passou de 500 mil em 2005 para quase 4,4 milhões em 2013; o tempo necessário
para o rádio atingir uma audiência de 50 milhões de pessoas foi de 38 anos, ao passo que a TV
precisou de 13 anos e a internet, de apenas quatro anos para alcançar esse mesmo número de
pessoas; a quantidade de buscas diárias no Google ultrapassa cinco bilhões, são escritos 500
milhões de tuítes por dia e vistas 200 milhões de horas de vídeos no YouTube diariamente.
Ainda no YouTube, foram enviadas 13 milhões de horas de vídeo apenas no ano 2010, o que
corresponde a aproximadamente oito anos de conteúdo enviados todos os dias (CASTRO, p. 2,
2016).
Sobre a utilização da biblioteca pandas voltada para o trabalho com dados na linguagem Python,
julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
I. ( ) Para construir um objeto do tipo DataFrame, precisamos utilizar o método DataFrame()
do pacote pandas, o qual possui uma série de parâmetros. Dentre todos os parâmetros, são
obrigatórios dois: data e columns.
II. ( ) É possível construir um DataFrame a partir de uma lista, com o seguinte comando:
pd.DataFrame(data=lista_valores, columns=['valores']).
III. ( ) É possível construir um DataFrame com diversas listas, pois cada lista será uma linha no
DF. Para isso basta usar o comando: pd.DataFrame(data=[lista1, lista2, lista3], columns=['col1',
'col2', 'col3']).
Assinale a alternativa correta.
Sua resposta
Correta
F - V - F
Questão 1
Correta
Questão com problema?
O desenvolvimento de software orientado a objetos (OO) existe desde o início dos anos 1960, mas
foi somente em meados da década de 90 que o paradigma orientado a objetos começou a ganhar
impulso (Weisfeld, 2013). A Figura 1 apresenta um diagrama do universo da orientação a objetos.
Figura 1 - Diagrama
Fonte: Elaborada pela autora.
Sobre a Figura 1, escolha a alternativa correta.
Sua resposta
Correta
A Figura 1 ilustra de forma gráfica o conceito de herança.
Questão 2
Correta
Questão com problema?
Um banco de dados mal projetado requer mais tempo e retrabalho em longo prazo. Sem
planejamento e análise cuidadosa, você pode criar um banco de dados que omita alguns dados
exigidos ou que seja inconsistente em relação ao contexto de informações que ele deve refletir
(MACHADO, p. 17, 2020). A Figura 1 apresenta um código que interage com um mecanismo de
banco de dados relacional em Python.
Figura 1 - Banco de dados em Python
Fonte: Elaborada pela autora.
Considerando o código da Figura 1, avalie as asserções a seguir.
I. Ao final da execução do código, o registro com nome "João" e idade "30", será adicionado a
tabela cliente e poderáser recuperado com uma instrução SELECT.
II. A instrução SQL na query faz parte das instruções do grupo DDL.
III. Segundo a PEP 249, uma instrução SQL deve ser executado por um método chamado execute()
através de um objeto do tipo cursor.
Assinale a alternativa correta.
Sua resposta
Correta
Somente a asserção III está correta.
Questão 3
Correta
Questão com problema?
Para utilizar um módulo é preciso importá-lo para projeto. Ao usar a sintaxe: import aaaa, o
comando não coloca os nomes das funções definidas em aaaa diretamente na tabela de símbolos
atual, isso coloca somente o nome do módulo aaaa. Usando o nome do módulo é possível acessar
as funcionalidades (PSF, 2020). A Figura 1 apresenta uma solução que utiliza um módulo de
terceiro em Python.
Figura 1 - Módulo de terceiro
Fonte: Elaborada pela autora.
Considerando o código da Figura 1, avalie as asserções a seguir.
I. A variável dados é uma lista de dicionários.
II. Cada item da variável dados possui uma chave chamada 'datetime'.
III. Cada item da variável dados possui uma chave chamada 'bbb' que também é um dicionário.
Escolha a opção correta.
Sua resposta
Correta
Todas as asserções estão corretas.
Questão 4
Correta
Questão com problema?
Podemos considerar uma classe, como uma forma de organizar os dados (de um objeto) e seus
comportamentos. Vamos pensar na construção de uma casa, antes do "objeto casa" existir, um
arquiteto fez a planta, determinando tudo que deveria fazer parte daquele objeto. Portanto, a classe
é o modelo e o objeto é uma instância. Entende-se por instância a existência física, em memória,
do objeto.
Figura 1 - Diagrama
Fonte: Elaborada pela autora.
Considerando a Figura, avalie as asserções a seguir.
I. A Figura A é uma classe com dois atributos e dois métodos.
II. A Figura B é uma classe com dois atributos e dois métodos.
III. A Figura C é uma instância de classe com dois atributos e dois métodos.
Assinale a alternativa correta.
Sua resposta
Correta
Somente as asserções I e III estão corretas.
Questão 5
Correta
Questão com problema?
Todos os atributos (colunas) de uma relação devem ser atômicos, isto é, indivisíveis em termos de
valores e componentes. Isso significa que não existem colunas do tipo subgrupo; todas são itens
elementares, não subdivididos em nenhuma hipótese e que também não é permitida a existência
da múltipla ocorrência de valores (multivaloração) em nenhum de seus atributos (colunas). É
importante compreender que cada linha de uma tabela representa um objeto, um assunto que é
descrito pelos valores de cada uma dessas colunas. Domínio representa o conjunto de valores
atômicos admissíveis de um componente (coluna) de uma relação (tabela) (MACHADO, p. 42,
2020)
Para fazer uma operação READ em um banco é necessário seguir os seguintes passos:
1. import sqlite3
2. cursor = conn.cursor()
3. cursor.execute(query)
4. print(linha)
5. resultado = cursor.fetchall()
6. conn = sqlite3.connect('meu_banco.db')
7. for linha in resultado:
8. query = "SELECT FROM fornecedor"
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
1 - 6 - 2 - 8 - 3 - 5 - 7 - 4
Questão 1
Correta
Questão com problema?
Um programa de computador é um produto resultante da atividade intelectual de um programador.
essa atividade, por sua vez, depende de um treinamento prévio em abstração e modelagem de
problemas, bem como do uso da lógica na verificação das soluções (SOUZA. p. 1, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo
Fonte: Elaborada pela autora
Escolha a opção que contém o comando necessário para completar o código, substituindo os "X"
Sua resposta
Correta
while j >= 0 and lista[j] > valor_inserir:
Questão 2
Correta
Questão com problema?
Uma estrutura de dados é uma maneira de armazenar e organizar dados para facilitar o acesso e as
modificações. Nenhuma estrutura de dados única funciona bem para todos os fins e, portanto, é
importante conhecer os pontos fortes e as limitações de vários deles, bem como sua utilização
dentro dos algoritmos.
Para implementar um algoritmo de busca é preciso os seguintes passos:
6. def procurar_valor(lista, valor):
2. tamanho_lista = len(lista)
1. for i in range(tamanho_lista):
3. if valor == lista[i]:
5. return i
4. return None
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
6 - 2 - 1 - 3 - 5 - 4
Questão 3
Correta
Questão com problema?
Um algoritmo é uma receita para executar uma determinada tarefa. Uma estrutura de dados é
uma maneira de organizar dados para facilitar a solução de um problema específico. Uma
estrutura de dados pode ser uma maneira de organizar valores em uma matriz, uma lista
vinculada que conecta itens em um determinado padrão, uma árvore, um gráfico, uma rede ou
algo ainda mais exótico (STEPHENS, p. 12, 2013).
Sobre os algoritmos de busca, avalie as asserções a seguir.
I. Um algoritmo que faz a busca sequencial, ou seja, elemento após elemento é chamado de
busca binária.
II. Um algoritmo que faz a busca, sempre separando uma sequência em duas novas é chamado de
busca sequencial.
III. O algoritmo de busca binária tem um desempenho, em termos de tempo, superior ao da busca
sequencial.
Escolha a opção correta.
Sua resposta
Correta
Somente a asserção III está correta.
Questão 4
Correta
Questão com problema?
Segundo Souza (2019) é importante notar que o objetivo do software é que motiva sua construção.
este pode ser definido como alguma necessidade humana, por exemplo, um programa para simular
o funcionamento de um circuito digital, um programa para comandar um robô em uma linha de
montagem, um sistema de gerenciamento de informações em uma empresa (SOUZA. p. 2, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Fonte: Elaborada pela autora
Escolha a opção que contém o comando necessário para completar o código, substituindo os "X"
Sua resposta
Correta
for i in range(tamanho_lista):
Questão 5
Correta
Uma pesquisa linear ou exaustiva simplesmente percorre os itens da matriz, procurando o item
de destino. Diferentemente da pesquisa binária e da interpolação, a pesquisa linear funciona em
listas ligadas, nas quais não é possível pular facilmente de uma parte da lista para outra.
Com base na complexidade de algoritmos, avalie as seguintes asserções e a relação proposta
entre elas.
I. A análise da complexidade está interessa em medir o desempenho de um algoritmo para
grandes entradas, ou seja, para o pior caso.
PORQUE
II. O comportamento assintótico de um algoritmo é o mais procurado, já que, para um volume
grande de dados, a complexidade torna-se mais importante
Escolha a opção correta.
Sua resposta
Correta
As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
Questão 1
Correta
Questão com problema?
Uma empresa necessita implementar uma solução para calcular o valor final de uma compra. Essa
solução, precisa ter a flexibilidade de receber um valor, a taxa do cartão de crédito (quando a
compra for paga com cartão) e um valor de desconto (quando houver). Ou seja, existem parâmetros
que são obrigatórios e outros não. Por exemplo, se o cliente pagar em dinheiro, então não existe
taxa de cartão.
Escolha a opção que apresenta uma solução correta para o problema exposto.
Sua resposta
Correta
def minha_funcao(valor, kwargs):
taxa_cartao = kwargs.get('taxa_cartao')
desconto = kwargs.get('desconto')
if taxa_cartao:
valor += valor (taxa_cartao / 100)
if desconto:
valor -= desconto
return valor
Questão2
Correta
Questão com problema?
Nos últimos 3 anos, o PSF vem trabalhando em projetos financiados por doações para melhorar os
sistemas e plataformas internos. Este trabalho foi realizado com o Packaging Working Group e
focado no ecossistema PyPI e pip. Dessa forma, foi possível mostrar que a aplicação de
financiamento direcionado a projetos de código aberto tem a capacidade de aumentar
drasticamente a velocidade do desenvolvimento e levar nossa comunidade adiante de uma maneira
muito mais sustentável do que depender apenas de esforços voluntários (Holscher, 2020).
O código a seguir é uma implementação em Python.
def minha_funcao(valor):
for i, c in enumerate(valor):
if c.lower() == 'a' or c.lower() == 'e':
print(c, i)
else:
continue
Considerando o código apresentado, assinale a alternativa que descreve corretamente o que ele
representa.
Sua resposta
Correta
Uma função que localiza e exibe a posição de cada vogal 'a' ou 'e', independente se é maiúscula
ou minúscula.
Questão 3
Correta
Questão com problema?
Em Python pode-se utilizar uma gama muito grande de funções matemáticas. Parte dessas
funções está na biblioteca padrão (em inglês, denominada pelo termo buit-in), e outra parte está
nas bibliotecas de funções “math” e “cmath”, que fornecem ao pro-gramador uma grande
variedade de funções matemáticas prontas (BANIN, p. 38, 2018).
As operações matemáticas possuem ordem de precedência:
1. Adição e subtração.
2. Multiplicação e divisão.
3. Parênteses.
4. Exponenciação/potência.
Assinale a alternativa que apresenta a ordem correta de precedência dos operadores matemáticos.
Sua resposta
Correta
3 - 4 - 2 - 1
Questão 4
Correta
Questão com problema?
Uma loja precisa implementar uma solução para calcular o desconto na compra do cliente. Caso o
cliente faça uma compra até R$ 100, o desconto será de 3%. Caso a compra seja até R$ 500, o
desconto será de 10%, caso seja até mil o desconto será de 20%.
Para fazer a implementaçã em Python é necessário seguir os seguintes passos:
1. elif valor <= 500:
2. if valor <= 100:
3. valor -= valor 0.03
4. elif valor <= 1000:
5. valor -= valor 0.10
6. valor -= valor 0.20
7. def calcular_desconto():
8. return valor
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
7 - 2 - 3 - 1 - 5 - 4 - 6 - 8
Questão 5
Correta
Questão com problema?
Processamento de Linguagem Natural (Pln) consiste no desenvolvimento de modelos
computacionais para a realização de tarefas que dependem de informações expressas em alguma
língua natural (PEREIRA, 2020). Uma empresa necessita de uma solução capaz de contabilizar a
quantidade total de caracteres em um texto, bem como em cada frase desse texto.
Uma possível solução para a empresa consiste nos seguintes passos:
1. resultado = 0
2. def minha_funcao(args):
3. tamanho = len(arg)
4. for arg in args:
5. print(f"Quantidade de caracteres de {arg} = {tamanho}")
6. return resultado
7. resultado += tamanho
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
2 - 1 - 4 - 3 - 7 - 5 - 6
Questão 1
Respondida
Um programa de computador ou simplesmente software é representado pelas instruções
e dados que algum ser humano definiu e que, ao serem executados por alguma máquina,
cumprem algum objetivo. a máquina a que este texto se refere é um computador digital.
(SOUZA. p. 1, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Fonte: Elaborada pela autora.
Escolha a opção que contém o comando necessário para completar o código,
substituindo os "X"
• while lista[j] > lista[j + 1]:
• if lista[j] > lista[j + 1]:
• while lista[j + 1] > lista[j]:
• if lista[j + 1] > lista[j]:
• elif lista[j + 1] > lista[j]:
Sua resposta
while lista[j] > lista[j + 1]:
if lista[j] > lista[j + 1]:
Questão 2
Respondida
Todo algoritmo que se possa construir utilizará conjuntos de dados. Tais dados podem
ser, basicamente, números e caracteres isolados ou, de algum modo, agrupados.
Para que um algoritmo possa ser implementado em um computador, é preciso que
exista um meio de armazenamento dos dados que serão manipulados. Assim, chega-se
ao conceito existente em todas as linguagens de programação e que é usualmente
designado pelo termo “variável” (BANIN, p. 26, 2018).
Considerando a linguagem Python, analise as asserções a seguir:
I. A função type() é usada para descobrir o tipo de um objeto.
II. A variável x = 10, é do tipo primitivo integer.
III. A variável y = 'oi' é do tipo primitivo string.
Escolha a opção correta.
• Somente as asserções I e II estão corretas.
• Somente as asserções II e III estão corretas.
• Somente as asserções I e III estão corretas.
• Todas as asserções estão corretas.
• Somente a asserção I está correta.
Sua resposta
Somente a asserção I está correta.
Questão 3
Respondida
Podemos considerar uma classe, como uma forma de organizar os dados (de um objeto)
e seus comportamentos. Vamos pensar na construção de uma casa, antes do "objeto
casa" existir, um arquiteto fez a planta, determinando tudo que deveria fazer parte
daquele objeto. Portanto, a classe é o modelo e o objeto é uma instância. Entende-se por
instância a existência física, em memória, do objeto.
Figura 1 - Diagrama
Fonte: Elaborada pela autora.
Considerando a Figura, avalie as asserções a seguir.
I. A Figura A é uma classe com dois atributos e dois métodos.
II. A Figura B é uma classe com dois atributos e dois métodos.
III. A Figura C é uma instância de classe com dois atributos e dois métodos.
Assinale a alternativa correta.
• Somente a asserção I está correta.
• Somente as asserções I e II estão corretas.
• Somente as asserções II e III estão corretas.
• Somente as asserções I e III estão corretas.
• Todas as asserções estão corretas.
Sua resposta
Somente as asserções I e III estão corretas.
Questão 4
Respondida
O INSS é uma autarquia do Governo do Brasil vinculada ao Ministério da Economia que
recebe as contribuições para a manutenção do Regime Geral da Previdência Social,
responsável pelo pagamento de benefícios aos brasileiros. aposentadorias. Uma empresa
precisa construir uma solução para calcular a contribuição do INSS de seus trabalhadores.
Para fazer essa implementação em Python são necessários os seguintes comandos:
1. valor -= valor 0.08
2. valor -= valor 0.09
3. valor -= valor 0.11
4. if valor <= 1830.29:
5. elif valor <= 6101.06:
6. elif valor <= 3050.52:
Assinale a alternativa que apresenta a sequência correta.
• 6 - 2 - 5 - 3 - 4 - 1
• 4 - 2 - 6 - 1 - 5 - 3
• 1 - 6 - 3 - 5 - 2 - 4
• 4 - 1 - 6 - 2 - 5 - 3
• 1 - 4 - 2 - 6 - 3 - 5
Sua resposta
4 - 1 - 6 - 2 - 5 - 3
Questão 5
Respondida
Os algoritmos e os tipos de dados devem ser construídos e usados conforme a
necessidade do problema. Por exemplo, um inteiro usa bits como seus blocos de
constituição, outros objetos podem usar inteiros como seus elementos atômicos. Alguns
tipos de dados já estão desenvolvidos em uma linguagem particular, mas outros podem
e necessitam ser definidos pelo usuário (DROZDEK, p. 31, 2016).
A Figura 1 apresenta a implementação de uma algoritmo de ordenação em Python, com
o uso de estruturas de dados.
Figura 1 - Algoritmo de ordenação.
Fonte: Elaborada pela autora
Escolha a opção que contém os comandos necessários para completar o código,
substituindo os "X" e "Y"
• X: if lista[index_menor] < lista[j]:
Y: index_menor = j
• X: if lista[j] < lista[index_menor]:
Y: index_menor = j
• X: if lista[n] < lista[j]:
Y: j = index_menor
• X: while lista[j] < lista[index_menor]:Y: index_menor = j
• X: while lista[j] < lista[index_menor]:
Y: j = index_menor
Sua resposta
X: if lista[j] < lista[index_menor]:
Y: index_menor = j
Questão 6
Sem resposta
Em Python pode-se utilizar uma gama muito grande de funções matemáticas. Parte
dessas funções está na biblioteca padrão (em inglês, denominada pelo termo buit-in), e
outra parte está nas bibliotecas de funções “math” e “cmath”, que fornecem ao pro-
gramador uma grande variedade de funções matemáticas prontas (BANIN, p. 38, 2018).
As operações matemáticas possuem ordem de precedência:
1. Adição e subtração.
2. Multiplicação e divisão.
3. Parênteses.
4. Exponenciação/potência.
Assinale a alternativa que apresenta a ordem correta de precedência dos operadores
matemáticos.
• 1 - 2 - 3 - 4
• 4 - 3 - 2 - 1
• 3 - 1 - 2 - 4
• 1 - 2 - 4 - 3
• 3 - 4 - 2 - 1
Sua resposta
3 - 4 - 2 - 1
Questão 7
Sem resposta
O objetivo de utilizar um computador é extrair as informações resultantes de
computações, isto é, o resultado das execuções das instruções de algum pro-grama.
deve-se observar a diferença entre informação e dado: o dado por si só é um valor
qualquer armazenado em um computador, enquanto a informação representa a
interpretação desse dado, ou seja, qual o seu significado (SOUZA. p. 2, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Escolha a opção que contém o comando necessário para completar o código,
substituindo os "X"
• meio = minimo
• meio = maximo
• meio = (minimo + maximo) % 2
• meio = (minimo + maximo) // 2
• meio = maximo - minimo
Sua resposta
meio = (minimo + maximo) // 2
Questão 8
Sem resposta
A visualização explicativa dos dados é apropriada quando você já sabe o que os dados
têm a dizer e está tentando contar essa história para outra pessoa. Pode ser o chefe do
seu departamento, um comitê de doações ou o público em geral. Quem quer que seja o
público, a história que você está tentando contar (ou a resposta que você está tentando
compartilhar) é conhecida por você desde o início e, portanto, você pode projetar para
acomodar e destacar especificamente essa história. Em outras palavras, você precisa
tomar certas decisões editoriais sobre quais informações ficam. Este é um processo de
seleção de dados focados que darão suporte à história que você está tentando contar
(ILIINSKY e STEELE, 2011).
Figura 1 - Gráfico gerado com biblioteca pandas
Fonte: Elaborada pela autora.
Escolha a opção que contém o comando usado para gerar o gráfico da Figura 1.
• df_etanol[['ANO', 'JAN', 'FEV']].plot(x='ANO', kind='bar', figsize=(12, 5), rot=45,
fontsize=12)
• df_etanol.loc[['ANO', 'JAN', 'FEV']].plot(x='ANO', kind='bar', figsize=(12, 5),
fontsize=12)
• df_etanol[['ANO', 'JAN', 'FEV']].plot(x='ANO', kind='barh', figsize=(12, 5), rot=45,
fontsize=12)
• df_etanol.loc[['ANO', 'JAN', 'FEV']].plot(x='ANO', kind='barh', rot=45, figsize=(12,
5), fontsize=12)
• df_etanol['ANO', 'JAN', 'FEV'].plot(x='ANO', kind='bar', figsize=(12, 5), rot=45,
fontsize=12)
Sua resposta
df_etanol[['ANO', 'JAN', 'FEV']].plot(x='ANO', kind='bar', figsize=(12, 5), rot=45, fontsize=12)
Questão 9
Sem resposta
A abordagem relacional representa uma forma de descrever o banco de dados por meio
de conceitos matemáticos simples: a Teoria dos Conjuntos. Voltada principalmente a
melhorar a visão dos dados pelos usuários, essa abordagem faz com que os usuários
vejam o banco de dados como um conjunto de tabelas bidimensionais, originadas em
linhas e colunas. O conceito principal vem da Teoria dos Conjuntos atrelado à concepção
de que não é relevante ao usuário saber onde os dados estão nem como os dados estão
(transparência) (MACHADO, p. 38, 2020).
Com base no mecanismo de banco de dados relacional SQLite em Python, avalie as
asserções a seguir.
I. CRUD é um acrônimo para as quatro operações de DDL que podemos fazer em uma
tabela no banco de dados
II. A primeira letra do CRUD - "C" significa CREATE e é pertinente a operação de criar
tabelas em um banco de dados relacional.
III. A segunda letra do CRUD - "R" significa READ e é pertinente a instrução SELECT do
SQL.
Assinale a alternativa correta.
• Somente a asserção III está correta.
• Somente as asserções I e II estão corretas.
• Todas as asserções estão corretas.
• Somente as asserções II e III estão corretas.
• Somente as asserções I e III estão corretas.
Sua resposta
Somente a asserção III está correta.
Questão 10
Sem resposta
A principal função da visualização de dados é mover as informações do ponto A para o
ponto B. Na visualização exploratória, o ponto A é o conjunto de dados e o ponto B é a
própria mente do designer. Na visualização explicativa, o ponto A é a mente do projetista
e o ponto B é a mente do leitor. Para alcançar esse objetivo, um designer ao projetar uma
visualização de dados visa uma entrega que será bem recebida e facilmente
compreendida pelo leitor. Todas as opções de design e implementações específicas
devem servir a esse propósito (ILIINSKY e STEELE, 2011).
Figura 1 -Uso da biblioteca matplotlib
Fonte: Elaborada pela autora.
Considerando o comando e o gráfico da Figura 1 escolha a opção correta.
• O gráfico da esquerda foi construído com o comando ax[0].plot(x, x)
• O gráfico da direita foi construído com o comando ax[0].plot(x2, x)
• O gráfico da esquerda foi construído com o comando fig[0].plot(x, x)
• O gráfico da direita foi construído com o comando fig[0].plot(x2, x)
• O rótulo do eixo horizontal na figura da direita foi construído com o comando
fig.set_ylabel('Eixo y')
Sua resposta
O gráfico da esquerda foi construído com o comando ax[0].plot(x, x)
Questão 1
Correta
Questão com problema?
Em Python existem três tipos numéricos distintos: números inteiros, números de ponto flutuante
e números complexos. Além disso, os booleanos são um subtipo de números inteiros. Números
de ponto flutuante são geralmente implementados usando o double em C.
Com base na implementação de operações matemáticas em Python, julgue as afirmativas a seguir
em (V) Verdadeiras ou (F) Falsas.
I. ( ) O resultado da operação matemática 5 + 4 / 2 é 4.5.
II. ( ) O resultado da operação matemática 5 // 2 é 2.
III. ( ) O resultado da operação matemática 5 % 2 é 1.
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
F - V - V
Questão 2
Correta
Questão com problema?
Uma loja precisa implementar uma solução para calcular o desconto na compra do cliente. Caso o
cliente faça uma compra até R$ 100, o desconto será de 3%. Caso a compra seja até R$ 500, o
desconto será de 10%, caso seja até mil o desconto será de 20%.
Para fazer a implementaçã em Python é necessário seguir os seguintes passos:
1. elif valor <= 500:
2. if valor <= 100:
3. valor -= valor 0.03
4. elif valor <= 1000:
5. valor -= valor 0.10
6. valor -= valor 0.20
7. def calcular_desconto():
8. return valor
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
7 - 2 - 3 - 1 - 5 - 4 - 6 - 8
Questão 3
Correta
Questão com problema?
PEP 8 (Python Enhancement Proposal) é um documento que fornece convenções de codificação
para o código Python que compreende a biblioteca padrão na distribuição principal do Python.
I. Podemos imprimir uma mensagem para o usuário combinando texto e conteúdo da variável da
seguinte forma: f"Olá {nome}, seja bem-vindo a linguagem Python."
PORQUE
II. Uma das formas que a linguagem Python aceita a interpolação de strings é por meio meio das
f-strings, comentada na PEP 498.
Escolha a opção correta.
Sua resposta
Correta
As asserções Ie II são proposições verdadeiras, e a II é uma justificativa correta da I.
Questão 4
Correta
Questão com problema?
Por controle de fluxo em um programa entende-se a ordem lógica de execução dos comandos que
o compõem, bem como os desvios nessa ordem necessários em função de certas condições que
possam ocorrer (BANIN, p. 49, 2018)
O código a seguir é uma implementação em Python.
if valor <= 1830.29:
valor -= valor 0.08
elif valor <= 3050.52:
valor -= valor 0.09
elif valor <= 6101.06:
valor -= valor 0.11
Considerando o código apresentado, assinale a alternativa que descreve corretamente o que ela
representa.
Sua resposta
Correta
Uma estrutura condicional encadeada, que dependendo do valor um desconto será aplicado.
Questão 1
Correta
Questão com problema?
Os algoritmos criados para resolver o mesmo problema geralmente diferem dramaticamente em
sua eficiência. Essas diferenças podem ser muito mais significativas do que as diferenças devido
ao hardware e software.
O algoritmo a seguir é uma implementação em Python.
def procurar_valor(lista, valor):
minimo = 0
maximo = len(lista) - 1
while minimo <= maximo:
meio = (minimo + maximo) // 2
if valor < lista[meio]:
maximo = meio - 1
elif valor > lista[meio]:
minimo = meio + 1
else:
return meio
return None
Considerando a função apresentada é correto o que se afirma em
I. A função representa um algoritmo de busca linear.
II. A função retornará verdadeiro ou falso caso encontre um valor.
III. Na primeira iteração o menor índice a ser considerado é o zero.
Escolha a opção correta.
Sua resposta
Correta
Somente a asserção III está correta.
Questão 2
Correta
Questão com problema?
Um programa de computador ou simplesmente software é representado pelas instruções e dados
que algum ser humano definiu e que, ao serem executados por alguma máquina, cumprem algum
objetivo. a máquina a que este texto se refere é um computador digital. (SOUZA. p. 1, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Fonte: Elaborada pela autora.
Escolha a opção que contém o comando necessário para completar o código, substituindo os "X"
Sua resposta
Correta
if lista[j] > lista[j + 1]:
Questão 3
Correta
Questão com problema?
Algoritmos podem ser expressos em pseudocódigo. Pseudocódigo é um texto muito parecido
com uma linguagem de programação, mas que não é realmente uma linguagem de programação.
A ideia é fornecer a estrutura e os detalhes necessários para implementar o algoritmo no código
sem vincular o algoritmo a uma linguagem de programação específica (STEPHENS, 2013).
Para implementar uma função que faz a busca linear é preciso seguir os seguintes passos:
1. for elemento in lista:
2. if valor == elemento:
3. def executar_busca_linear(lista, valor):
4. return False
5. return True
Assinale a alternativa que apresenta a sequência correta.
Sua resposta
Correta
3 - 1 - 2 - 5 - 4
Questão 4
Correta
Questão com problema?
O objetivo de utilizar um computador é extrair as informações resultantes de computações, isto é,
o resultado das execuções das instruções de algum pro-grama. deve-se observar a diferença entre
informação e dado: o dado por si só é um valor qualquer armazenado em um computador, enquanto
a informação representa a interpretação desse dado, ou seja, qual o seu significado (SOUZA. p. 2,
2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Fonte: Elaborada pela autora
Escolha a opção que contém o comando necessário para completar o código, substituindo os "X"
Sua resposta
Correta
meio = (minimo + maximo) // 2
Questão 5
Correta
Questão com problema?
O estudo de algoritmos e de lógica de programação é essencial no contexto do processo de criação
de um software. ele está diretamente relacionado com a etapa de projeto de um software em que,
mesmo sem saber qual será a linguagem de programação a ser utilizada, especifica-se
completamente o software a ponto de na implementação ser possível traduzir diretamente essas
especificações em linhas de código em alguma linguagem de programação como pascal, C, Java e
outras (SOUZA. p. 2, 2019).
O código a seguir é uma implementação em Python.
Figura 1 - Algoritmo em Python
Fonte: Elaborada pela autora.
Considerando código na Figura 1, analise as asserções a seguir:
I. A função replace() nunca dará um erro do tipo AttributeError, uma vez que o valor sempre é
transformado em string pelo seu construtor.
II. Um valor somente será adicionado a nova lista se sua quantidade de caracteres for inferior ou
igual a 11.
III. A nova lista terá, no máximo, 11 elementos.
Assinale a alternativa correta.
Sua resposta
Correta
Somente a asserção I está correta.
Questão 1
Correta
Questão com problema?
Um módulo pode conter instruções executáveis e definições de funções. Essas instruções têm
como objetivo inicializar o módulo. Eles são executados somente na primeira vez em que o nome
do módulo é encontrado em uma instrução de importação. Cada módulo possui sua própria tabela
de símbolos privada, que é usada como tabela de símbolos global por todas as funções definidas
no módulo. A Figura 1 é um módulo, criado pelo desenvolvedor em Python.
Figura 1 - Módulo em Python
Fonte: Elaborada pela autora.
Considerando o módulo na Figura 1, avalie as asserções a seguir.
I. Esse módulo pode ser executado como um script, sendo chamado pelo terminal, pois possui a
sentença if __name__ == '__main__':
II. A variável "data" guarda a data do sistema, formatada como dia-mês-ano, logo é um objeto da
classe datetime.
III. A variável "texto", usa uma expressão regular para procurar pelas letras (vogais e consoantes)
em uma determinada string.
Escolha a opção correta.
Sua resposta
Correta
Somente a asserção I está correta.
Questão 2
Correta
O objetivo de um modelo de dados é ter certeza de que todos os objetos de dados existentes em
determinado contexto e requeridos pela aplicação e pelo banco de dados estão completamente
representados e com precisão. O modelo de dados também deve ser detalhado o bastante para ser
usado pelo implementador (DBA) do banco de dados como uma espécie de fotocópia para
construir o banco de dados físico. Será utilizada toda a informação que está no modelo de dados
lógico para definir as tabelas de um banco de dados relacional, chaves primárias e chaves
estrangeiras, procedimentos armazenados (stored procedures) e gatilhos (triggers) (MACHADO,
p. 17, 2020).
Considerando o mecanismo de banco de dados relacional SQLite em Python, julgue as afirmativas
a seguir em (V) Verdadeiras ou (F) Falsas.
I. ( ) O comando cursor.fetchall() é usado para capturar as linhas em um tabela, resultantes de
uma instrução SQL SELECT.
II. ( ) O comando resultado = cursor.fetchall(), guarda na variável "resultado" uma lista de
tuplas, na qual cada tupla é uma linha da tabela no banco de dados.
III. ( ) A estrutura de repetição for, pode ser usada para iterar sobre cada registro capturado com
o comando cursor.fetchall().
Assinale a alternativa correta.
Sua resposta
Correta
V - V - V
Questão 3
Correta
Questão com problema?
Um banco de dados mal projetado requer mais tempo e retrabalho em longo prazo. Sem
planejamento e análise cuidadosa, você pode criar um banco de dados que omita alguns dados
exigidos ou que seja inconsistente em relação ao contexto de informações que ele deve refletir
(MACHADO, p. 17, 2020). A Figura 1 apresenta um código que interage com um mecanismo de
bancode dados relacional em Python.
Figura 1 - Banco de dados em Python
Fonte: Elaborada pela autora.
Considerando o código da Figura 1, avalie as asserções a seguir.
I. Ao final da execução do código, o registro com nome "João" e idade "30", será adicionado a
tabela cliente e poderá ser recuperado com uma instrução SELECT.
II. A instrução SQL na query faz parte das instruções do grupo DDL.
III. Segundo a PEP 249, uma instrução SQL deve ser executado por um método chamado execute()
através de um objeto do tipo cursor.
Assinale a alternativa correta.
Sua resposta
Correta
Somente a asserção III está correta.
Questão 4
Correta
Questão com problema?
Um módulo pode conter tanto instruções executáveis quanto definições de funções e classes. Essas
instruções servem para inicializar o módulo. Eles são executados somente na primeira vez que o
módulo é encontrado em uma instrução de importação (PSF, 2020). A Figura 1, apresenta a
implementação com módulo em Python.
Figura 1 - Implementação em Python
Fonte: Elaborada pela autora.
Sobre o código na Figura 1, avalie as asserções a seguir:
I. O arquivo de nome principal.py é um script executável se a variável __name__ tiver o valor
__main__
II. create_ssh_client é uma função implementada em um módulo chamado import.
III. Como o arquivo de nome principal.py possui o método main(), ele não pode ser usado como
módulo em outro módulo.
Escolha a opção correta
Sua resposta
Correta
Somente as asserções I e II estão corretas.
Questão 5
Correta
Questão com problema?
Requests é uma biblioteca HTTP elegante e simples para Python, criada para seres humanos. Essa
biblioteca permite que você envie solicitações HTT / 1.1 com extrema facilidade, pois não há
necessidade de adicionar manualmente cadeias de consulta aos seus URLs ou de codificar os dados
do POST. O keep-alive e o pool de conexões HTTP são 100% automáticos, graças ao urllib3
(Reitz, 2020). A Figura 1 ilustra a utilização do pacote requests.
Figura 1 - Pacote requests.
Fonte: Elaborada pela autora.
A respeito do código na Figura 1, avalie as asserções a seguir
I. O método get captura o conteúdo de uma página web, guardando na variável referenciada um
dicionário.
II. A variável dados1, guarda todo o conteúdo capturado de uma página web em formato de texto,
logo é um objeto da classe str.
III. A variável dados2, guarda todo o conteúdo capturado de uma página web em formato de
dicionário, logo é um objeto da classe dict.
Escolha a opção correta
Sua resposta
Correta
Somente a asserção II está correta.
Questão 1
Correta
Questão com problema?
Hoje em dia, somos inundados por dados. Estima-se que a quantidade de nova informação
técnica dobre a cada dois anos, e mais de 1,5 hexabyte de informação nova foi gerada nesse ano.
Isso é mais que o gerado durante o período de 5 mil anos antes de nascermos. Uma incrível
quantidade de dados está prontamente disponível para nós na Internet e em outros locais. As
pessoas capazes de analisar essas informações obterão bons empregos, o que será de valor
inestimável em quase qualquer campo (LOCK, p. 4, 2017).
Sobre a utilização da biblioteca pandas voltada para o trabalho com dados na linguagem Python,
avalie as asserções a seguir.
I. pandas possui duas estruturas de dados que são as principais para a análise/manipulação de
dados: a Series e o DataFrame.
II. Uma Series é uma matriz unidimensional, capaz de armazenar apenas dados do tipo inteiro.
III. Um DataFrame é conjunto de Series, ou como a documentação apresenta, um contêiner para
Series
Assinale a alternativa correta.
Sua resposta
Correta
Somente as asserções I e III estão corretas.
Questão 2
Correta
Questão com problema?
O termo mineração de dados, segundo Castro (2016) pode ser definido como: "etapa do processo
corresponde à aplicação de algoritmos capazes de extrair conhecimentos a partir dos dados pré-
processados. Nessa etapa são usadas técnicas de análise descritiva (medidas de distribuição,
tendência central e variância, e métodos de visualização), agrupamento (segmentação de bases de
dados), predição (classificação e estimação), associação (determinação de atributos que ocorrem)
e detecção de anomalias (CASTRO, p. 5, 2016).
Sobre a utilização da biblioteca pandas voltada para o trabalho com dados na linguagem Python,
avalie as asserções a seguir.
I. Para mineração, transformação dos dados e extração de informações é preciso criar filtros. O
comando df_dados['taxa'] < 0.01, retorna um DataFrame com o filtro aplicado a coluna.
II. A criação de filtros booleanos compostos na biblioteca pandas, pode ser feita com os operadores
lógicos. Nesse caso, usa-se o comando "and" para o o operador E e "or" para o operador OU.
III. O comando df_dados.loc[df_dados['nome'] == "João"], retornará um novo DataFrame,
contendo todos os registros cujo valor na coluna "nome" é João.
Escolha a opção correta.
Sua resposta
Correta
Somente a asserção III está correta.
Questão 3
Incorreta
Questão com problema?
Uma visualização informativa tem como objetivo estabelecer um relacionamento entre o leito e os
dados, buscando apresentar de forma neutra os fatos, com intuito de educar o leitor, sem
necessidade de persuadi-lo. Essas visualizações estão frequentemente associadas a conjuntos
amplos de dados e buscam destilar o conteúdo de maneira gerenciável e consumível. Idealmente,
constituem a maior parte das visualizações encontradas no cotidiano de pessoas comuns, seja no
ambiente de trabalho, em jornais ou em sites de prestadores de serviços (ILIINSKY e STEELE,
2011).
Sobre a biblioteca seaborn, avalie as asserções a seguir.
I. A biblioteca seaborn possui o método barplot() para criar gráficos de barras. Ao utilizar o
parâmetro estimator=count, é possível gerar uma barra que representa a contagem de
elementos.
II. O parâmetro "estimator" do método barplot() possui o valor padrão como média. Isso significa
que, ao selecionar os dados, uma barra será exibida representando a média dos valores
correspondentes.
III. O parâmetro estimator=len utilizado no método barplot() cria o mesmo tipo de gráfico que a
função countplot().
Considerando o contexto apresentado, é correto o que se afirma em:
Sua resposta
Incorreta
Somente as asserções II e III estão corretas.
Solução esperada
Somente as asserções I e II estão corretas.
Questão 4
Correta
Questão com problema?
A quantidade de usuários da internet no mundo todo passou de 16 milhões de pessoas em 1995
para aproximadamente 2,8 bilhões em 2013; a quantidade de artigos publicados apenas em inglês
na Wikipédia passou de 500 mil em 2005 para quase 4,4 milhões em 2013; o tempo necessário
para o rádio atingir uma audiência de 50 milhões de pessoas foi de 38 anos, ao passo que a TV
precisou de 13 anos e a internet, de apenas quatro anos para alcançar esse mesmo número de
pessoas; a quantidade de buscas diárias no Google ultrapassa cinco bilhões, são escritos 500
milhões de tuítes por dia e vistas 200 milhões de horas de vídeos no YouTube diariamente.
Ainda no YouTube, foram enviadas 13 milhões de horas de vídeo apenas no ano 2010, o que
corresponde a aproximadamente oito anos de conteúdo enviados todos os dias (CASTRO, p. 2,
2016).
Sobre a utilização da biblioteca pandas voltada para o trabalho com dados na linguagem Python,
julgue as afirmativas a seguir em (V) Verdadeiras ou (F) Falsas.
I. ( ) Para construir um objeto do tipo DataFrame, precisamos utilizar o método DataFrame()
do pacote pandas, o qual possui uma série de parâmetros. Dentre todos os parâmetros, são
obrigatórios dois: data e columns.
II. ( ) É possível construir um DataFrame a partir de uma lista, com o seguinte comando:
pd.DataFrame(data=lista_valores, columns=['valores']).
III.( ) É possível construir um DataFrame com diversas listas, pois cada lista será uma linha no
DF. Para isso basta usar o comando: pd.DataFrame(data=[lista1, lista2, lista3], columns=['col1',
'col2', 'col3']).
Assinale a alternativa correta.
Sua resposta
Correta
F - V - F