Questão nº 46
Questão de Tecnologia da Informação · FCC TRF4 2019 (nº 46)
Considere o código Python abaixo.
def oper(l, item):
pos = 0
x = False
I
if l[pos] == item:
x = True
else:
pos = pos+1
return x
v = [1, 2, 32, 8, 17, 19, 42, 13, 0]
print(oper(v, 8))
Para que o código exiba na tela o valor True se o item buscado no vetor por meio da função oper for encontrado, a lacuna I deve ser corretamente preenchida por
- A`while pos < l and not x:`
- B`while pos < len(l) && x:`
- C`while pos < len(l) and not found(x):`
- D`while (pos < len(l) && not(x)):`
- E`while pos < len(l) and not x:` (alternativa correta)
Resposta comentada
Gabarito Alternativa E
A busca linear (ou sequencial) é um algoritmo que percorre uma lista, um elemento por vez, para encontrar um item específico ou verificar se ele existe.
- (A) Incorreta:
pos < ltenta comparar um número (pos) com uma lista (l), o que resulta em um erro de tipo (TypeError). O correto seriapos < len(l). - (B) Incorreta:
&&não é o operador lógico AND em Python; o correto éand. Além disso,while ... && x:faria com que o loop nunca executasse, poisxé inicializado comoFalse, e a condição deveria sernot xpara continuar buscando enquanto o item não for encontrado. - (C) Incorreta:
found(x)não é uma função Python válida para verificar o valor de uma variável booleana. O correto é simplesmentenot x. - (D) Incorreta:
&&não é o operador lógico AND em Python; o correto éand. - (E) Correta:
pos < len(l)garante que o índice não exceda os limites da lista, enot xgarante que o loop continue enquanto o item ainda não foi encontrado.andé o operador lógico correto em Python.
Fonte: FCC TRF4 2019 Analista Judiciário - Área Apoio Especializado - Especialidade Sistemas de Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.