python中的if有什么错?
我是python新手,也许我会问一个愚蠢的问题,但我不知道为什么我的代码不能工作。。。 我在一个存储库文件中有一个delete方法,该方法遍历一个cars数组,如果它找到一个具有相同id的car,则将其删除 这是我的代码: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")
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,太棒了!我在比较两种不同的数据类型!谢谢大家,对不起,我问了个愚蠢的问题!