python中的if有什么错?

python中的if有什么错?,python,arrays,loops,if-statement,for-loop,Python,Arrays,Loops,If Statement,For Loop,我是python新手,也许我会问一个愚蠢的问题,但我不知道为什么我的代码不能工作。。。 我在一个存储库文件中有一个delete方法,该方法遍历一个cars数组,如果它找到一个具有相同id的car,则将其删除 这是我的代码: def delete_car(self, carId): noOfCars = len(self.carsArray) for i in range(0, noOfCars): print("Entered for")

我是python新手,也许我会问一个愚蠢的问题,但我不知道为什么我的代码不能工作。。。 我在一个存储库文件中有一个delete方法,该方法遍历一个cars数组,如果它找到一个具有相同id的car,则将其删除

这是我的代码:

def delete_car(self, carId):
        noOfCars = len(self.carsArray)
        for i  in range(0, noOfCars):
           print("Entered for")
           if (self.carsArray[i].get_id() == carId):
                print("found the id!")
                print(carId, self.carsArray[i].get_id())
                del self.carsArray[i]
                break
           else:
                print("didn't find any matching id", carId, self.carsArray[i].get_id())
这是我的输出:

1.Cars menu
2.Clients menu
3.Rentals menu
0.Exit
命令:1

1.Show available cars
2.Add a car
3.Delete a car
4.Update car
5.Show cars by their manufacturer
6.Find a car
0.Exit
指挥部:3

1 Mustang Ford(A very nice muscle car)
2 Prius Toyota(A hybrid car)
3 Passat Volkswagen("The car of the people")
4 Logan Dacia(A Romanian made car)
输入要删除的汽车的id:2

Entered for
didn't find any matching id 2 1
Entered for
didn't find any matching id 2 2
Entered for
didn't find any matching id 2 3
Entered for
didn't find any matching id 2 4
我不明白为什么在检查2=2之后if继续迭代。。。对于python来说,这似乎是不平等的


有什么帮助吗?

您正在比较字符串和整数吗?这总是错误的。将
print(“找不到任何匹配的id”,carId,self.carsArray[i].get_id())
替换为
print(“找不到任何匹配的id%r%r”%”(carId,self.carsArray[i].get_id())
,这样我们就可以更好地了解发生了什么事情。这只是一个提示,使用xrange而不是range,xrange是一个生成器,相对来说比range快。@mid,这只适用于python2oh,太棒了!我在比较两种不同的数据类型!谢谢大家,对不起,我问了个愚蠢的问题!