Неправильное присвоение переменной в PYTHON

#python #variables

#python #переменные

Вопрос:

Строка 6 — это присвоение переменной, и она не работает …. почему?

Я не вижу ошибки

 aleatorio = [11,2,5,9,3,4,8,13,7]
longitud = len(aleatorio)
contador = 0

for i in range(longitud-1):
  a = aleatorio[i]
  b = aleatorio[i   1]
  print(a, b, i, i   1)
  if a < b:
    contador = contador   1 
  else:
    c = aleatorio[i]
    d = aleatorio[i 1]
    aleatorio[i] = d
    aleatorio[i 1] = c
print(aleatorio)
  

он печатает:

 11 2 0 1
11 5 1 2
11 9 2 3
11 3 3 4
11 4 4 5
11 8 5 6
11 13 6 7
13 7 7 8
[2, 5, 9, 3, 4, 8, 11, 7, 13]
  

Комментарии:

1. Каков ваш ожидаемый результат?

2. Как вы думаете, почему в этом коде есть ошибка? Код делает именно то, что должен. 11 начинается с позиции 0 и продолжает двигаться вправо, пока не достигнет 13. Затем 13 перемещается вправо, пока не достигнет конца.

3. Что вы подразумеваете под строкой 6 (переменная a справа?) не работает, у вас есть сообщение об ошибке или что-то, что говорит вам об этом?

Ответ №1:

Если вы хотите отсортировать список, вы должны внести небольшое изменение, подобное этому:

 aleatorio = [11,2,5,9,3,4,8,13,7]
longitud = len(aleatorio)


contador = 0
while contador!= longitud-1:
    contador=0
    for i in range(longitud-1):
        a = aleatorio[i]
        b = aleatorio[i   1]
        print(a, b, i, i   1)
        if a <= b:
            contador = contador   1 
        else:
            c = aleatorio[i]
            d = aleatorio[i 1]
            aleatorio[i] = d
            aleatorio[i 1] = c
print(aleatorio)