FC ConcursosFC Concursos

Questão FC373130

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(ope

Linguagens de Programação para Ciência de Dados

FCC · 2019

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

  1. while pos < l and not x:
  2. while pos < len(l) && x:
  3. while pos < len(l) and not found(x):
  4. while (pos < len(l) && not(x)):
  5. while pos < len(l) and not x:
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A expressão correta é while pos < len(l) and not x:. Ela combina duas verificações: pos < len(l) garante que o índice esteja dentro dos limites do vetor, evitando IndexError, e not x interrompe o laço assim que o item for encontrado (pois x passa a ser True).

Em termos formais, o laço continua enquanto \(pos < \text{len}(l)\) e a condição de sucesso ainda não ocorreu. A avaliação é feita com and em curto-circuito, ou seja, len(l) é verificada antes de acessar l[pos], protegendo a leitura.

Assim, o laço percorre o vetor incrementando pos até localizar o elemento (tornando x True) ou até exaurir os índices; a função então retorna True se encontrou o item.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo