我的代码应获取一个具有零个或1个值的数组,如果任何元素为0,则应将其切换为1,并切换其除数的状态。问题是第二个if似乎不起作用,并且不能将1状态更改为0。我不明白为什么,有人可以帮助我吗?
data = input()
L = list(data.split())
L2 = np.array(L,int)
L3 = np.zeros(len(L2),int)
for i in range(len(L2)-1, -1, -1):
if ( L2[i] == 0) :
L2[i] = 1
L3[i] = 1
for j in range(0, i) :
if ((i+1)%(j+1) == 0 & L2[j] == 0) :
L2[j] = 1
if ((i+1)%(j+1) == 0 & L2[j] == 1) :
L2[j] =0 #this does not work
print(*L3)
答案 0 :(得分:1)
更改:
if ((i+1)%(j+1) == 0 & L2[j] == 1) :
到
if ((i+1)%(j+1) == 0 and L2[j] == 1) :
第一个是数学运算。另外,为了调试这些类型的问题,我通常在if语句中添加一个打印项目以确保其正常工作。我希望这会有所帮助!