Pedro está dando seus primeiros passos na programação Python...

Próximas questões
Com base no mesmo assunto
Q1978803 Programação
Pedro está dando seus primeiros passos na programação Python e pretende construir uma função para colocar em ordem crescente os elementos de uma lista. A versão corrente do seu script de teste é a mostrada abaixo.
Imagem associada para resolução da questão

Nesse estágio, a lista exibida pelo último comando print é:
Alternativas

Comentários

Veja os comentários dos nossos alunos

Objetos mutáveis, como listas, refletem a mudança dos valores fora da função que modificou tal parâmetro, objetos imutáveis, como strings, não refletem a modificação fora da função que modificou o mesmo parâmetro.

Isso porque "Pedro está dando seus primeiros passos na programação", imagine se não fosse kkk

A função em tela escrita por pedro contem o problema, qual seja, ela irá ordenar apenas os dois primeiros elementos:

def enigma(L):

   for i in range(0, len(L)-2):

       ac=False

       for j in range (1, len(L)-1):

           if L[i]>L[j]:

              L[i],L[j]=L[j],L[i]

              ac=True

       #if ac:

         # break

   return #len(L)

x = [5,2,1]

enigma(x)

#print(enigma(x))

print(x)

  1. O código define uma função chamada "enigma" que recebe uma lista "L" como argumento.
  2. Inicialmente, a função itera sobre a lista "L" com um loop "for" que vai de 0 a len(L)-2. Isso significa que o loop vai percorrer todos os elementos da lista, exceto os dois últimos.
  3. Dentro do primeiro loop, uma variável booleana chamada "achou" é definida como False.
  4. Em seguida, há um segundo loop "for" que vai de 1 a len(L)-1. Isso significa que o segundo loop percorre todos os elementos da lista, exceto o primeiro e o último.
  5. Dentro do segundo loop, há uma condição "if" que verifica se o elemento L[i] (do primeiro loop) é maior que o elemento L[j] (do segundo loop). Se a condição for verdadeira, os elementos são trocados de posição usando a sintaxe L[i], L[j] = L[j], L[i].
  6. Após a troca de posição, a variável "achou" é definida como True para indicar que ocorreu uma troca.
  7. Depois disso, o primeiro loop verifica se houve alguma troca (achou == True) e, se sim, o loop é interrompido usando "break".
  8. A função retorna o comprimento da lista "L".
  9. Fora da função, uma lista x = [4, 2, 6, 5, 10] é definida.
  10. A função "enigma" é chamada passando a lista x como argumento e o resultado é impresso usando "print(enigma(x))". O resultado é 2, pois apenas os elementos 2 e 4 precisaram ser trocados de posição para que a lista fique em ordem crescente.
  11. Em seguida, a lista x é impressa usando "print(x)" e o resultado é [2, 4, 6, 5, 10]. A lista foi modificada pela função "enigma", pois as trocas de posição afetaram a ordem dos elementos.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo