我有以下代码没有进入循环,我无法理解原因。
python file.py 1111100000000
代码:
import argparse
p = argparse.ArgumentParser()
p.add_argument("bits", help = "array_of_bits")
args = p.parse_args()
bits = args.bits
temp = []
for i in bits:
temp.append([int(i)])
print (temp)
fin = []
j = 0
for i in range(0,len(temp),(-1)):
if ( (temp[i] == 0) ):
fin.extend(temp[j].append(temp[i]))
if ( len(temp[i]) != 1 ):
fin.extend(temp[j].append(temp[i]))
j = j + 1
print (fin)
我想得到的是:
[[1], [1], [1], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0]]
[[10010], [10010], [100]
但我得到了这个:
[[1], [1], [1], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0]]
[[]]
答案 0 :(得分:4)
问题在于您range
循环中的for
重复:
for i in range(0,len(temp),(-1)):
range(0,len(temp),(-1))
是一个空范围,因此循环永远不会被执行。
您的范围将从0开始并生成小于len(temp)
的项目,但步长为-1
,即从0向下计数。这样,它永远无法达到其目标值,因为{{1总是积极的。