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
- while pos < l and not x:
- while pos < len(l) && x:
- while pos < len(l) and not found(x):
- while (pos < len(l) && not(x)):
- 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