Python 在if中交换变量位置会引发错误

Python 在if中交换变量位置会引发错误,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,为什么没人告诉我原因我就被否决了?对于初学者来说,在这里提问并不容易 编辑2:添加打印语句以检查整数 data_list = ['A268981', 'A269123', 'A604957', 'B604960', 'A605128', 'B605132', 'A1089807', 'B1089810', 'A1089948', 'B1089951'] 常数的值 i: 0 k: 1 A268981 A269123 ['A268981', 'A269123', 'A604957', 'B6049

为什么没人告诉我原因我就被否决了?对于初学者来说,在这里提问并不容易

编辑2:添加打印语句以检查整数

data_list = ['A268981', 'A269123', 'A604957', 'B604960', 'A605128', 'B605132', 'A1089807', 'B1089810', 'A1089948', 'B1089951']
常数的值

i: 0
k: 1
A268981
A269123
['A268981', 'A269123', 'A604957', 'B604960', 'A605128', 'B605132', 'A1089807', 'B1089810', 'A1089948', 'B1089951']
i: 2
k: 4
A604957
A605128
[0, 0, 'A604957', 'B604960', 'A605128', 'B605132', 'A1089807', 'B1089810', 'A1089948', 'B1089951']

我认为你应该重新考虑一下

基本上你所做的是

TWENTY_MPH = 280
SIXTY_MPH = 100
这里的问题是,在某一点上,条件得到验证,并将0分配给数据[k],但在另一个i循环迭代中,对于相同的k值,您读回该值,并将其视为“A268981”字符串中的某个字符串,但失败了

例如:

for i in [0..N]:
    for k in [i..N]:
        my_string_1 = data[i][0]
        my_string_2 = data[k][0]
        if my_string_1 == my_string_2:
            data[i] = 0
            data[k] = 0
后来

i = 3
k = 7
data[k] = 0
我没有运行您的代码,但我想这可能会发生,也可能不会发生,这取决于其他条件,如果tyre1-tyre2<20_MPH和tyre1-tyre2>60_MPH:,这就是为什么您看到它或不看到它取决于该条件

此外,我不知道这些常数是什么,但我不知道同一个值如何既小于20又大于60。你也应该发布这些值


注意:在处理字符串时,我认为数据列表[i][0]等同于数据列表[i][:1],并且比数据列表[i][:1]更具可读性。

错误是,数据列表[i]已经是一个整数,因此不能在其上添加[:1]。@WillemVanOnsem data\u list=['A268981','A269123','A604957','B604960','A605128','B605132','A10898807','B1089810','A1089948','B1089951'];另一方面,这种比较是相当模糊的。不确定它所做的是否就是你想要的intend@MosesKoledoye在切换变量时似乎可以正常工作。我正在尝试检查两个字符串是否都以“A”开头是的,我想你很好,首先计算-运算,这也是我的想法。所以我在t之前添加了一个print语句条件。添加到原始问题。你没有编辑代码来显示那些打印语句的位置,但它看起来像我说的,不是吗?我添加了打印。不,它们在作业期间不是整数。当你这样做时,你可以打印I和k,data_list[I]和data_list[k]就在那条线崩溃之前,我刚刚加上了那个伙计
TWENTY_MPH = 280
SIXTY_MPH = 100
for i in [0..N]:
    for k in [i..N]:
        my_string_1 = data[i][0]
        my_string_2 = data[k][0]
        if my_string_1 == my_string_2:
            data[i] = 0
            data[k] = 0
i = 3
k = 7
data[k] = 0
i = 5
k = 7
data[k][0]  <-- error