Вы попадаете в бесконечное число l oop, потому что когда вы вставляете broj
в список, оно становится aList[i]
. На следующей итерации l oop это aList[i-1]
, поэтому aList[i-1] <= broj
верно, потому что они одинаковые. Таким образом, вы вставляете broj
снова, и это происходит на каждой итерации.
Вы должны выйти из l oop после вставки broj
, так как больше не нужно искать места для вставки.
Вы также можете использовать for
l oop вместо while
.
for i in range(1, len(aList)):
if aList[i-1] <= broj <= aList[i]:
aList.insert(i,broj)
break
else:
aList.append(broj)
return aList
Если вы никогда не найдете место для вставки broj
, оно должно быть больше любое число, поэтому его следует добавлять, если l oop завершается без вставки.
Вы можете проверить число в диапазоне, сравнив цепочки aList[i-1] <= broj <= aList[i]