更新 except 块内的整数变量

Update an integer variable inside the except block

def inputList():
        list=[]
        length=int(input("Enter the length of the list : "))
        print("Enter the elements -->")
        for i in range(length):
                print(i)
                try:
                        element=int(input(":"))
                        list.append(element)
                except:
                        print("Invalid element entered! WON'T BE COUNTED!")
                        i-=1
                        print("i NOW :",i)
        print("Unaltered list :",list)
        return list

我正在尝试对 except 块进行编码,以便在发生错误时它也减少 i 的值(例如,输入浮点数而不是 int)。当 except 块运行时,它打印减少的值,但是当 for 再次运行时 i 保持不变,因此总长度比它应该的长度少一(因为一个不正确的值)。

如果将 i 的调用放在 str() 中的最后一个 except print 语句中,它是否有效?

                print("i NOW : "+ str(i))

你可以用不同的方式查看并使用它,这样更简单并且避免在计数器中减去

def inputList():
list =[]
print("Unaltered list :",list)
length =int(input("Enter the length of the list: "))
print("Enter the elements -->")
i=0
while(i<length):
    print(i)
    try:
        element = int(input(":"))
        list.append(element)
        i++
    except:
        print("Invalid element entered! WON'T BE COUNTED!")
        print("i NOW :",i)

return list