按一定顺序插入一个数字

不明白哪一步想错了



l=[1,10,50,100,500]
i=int(input("请输入一个数字:"))
for j in range(len(l)):
    if i[j]:
       l.insert(j-1,i)
       break
    else:
       l.append(i) 
print(l)        

下面是输出的结果

请输入一个数字:501
[1, 10, 50, 100, 500]

有两个错误:
1,在某个位置之前插入某个元素,直接使用当前位置的坐标索引即可,不用再减一。举个简单的例子,当j=0的时候,难道你要在-1的位置插入吗?应该改成l.insert(j,i)
2,else语句应该和for语句保持并列,表示当所有的循环都尝试后,再执行else语句。

直接插入然后排序不就行了

l= [1, 10, 50, 100, 500]
i = int(input("请输入一个数字:"))
l.append(i)
l.sort()
print(l)

else要写在for的后面,不要写在if后面啊
否则append会执行5次
你这输出结果和我这运行的不一样啊,你代码没放全吧,中间的for根本没有调用吧