代码:蟒纹消除多次打印输出
x = ['1', '2', '3']
y = ['a', 'b', 'c']
rangeend = len(x)
for i in range(0, rangeend):
with open("file20.txt") as f:
for line in f:
count = 0
line = line.strip()
z = line.split(" ")
if z[0] == x[i] :
count = 1
a = z[0], z[1]
b = x[i],y[i]
if a == b:
print "ok"
break
else:
print "Failed"
break
if count != 1:
print "{} not found".format(x[i])
file20.txt:
1 a
2 b
5 c
x
列表中有3
但file20.txt
没有在开始该行的3
(第一串)
我正在尝试的是我要打印的文件是3 not found
,并且打印只能完成一次在最后。
注意:不仅元素3
,任何元素如果x
列表有但file20.txt
文件行不在开始(第一个字符串)。我想要打印没有找到。
下面是代码输出和2
实际上是存在的,但它是印刷2 not found
(其实这不打印2 not found
)和3
是不存在的file20.txt
但打印3 not found
是正确的,但问题是,它是印刷3倍。我只是想要它打印3 not found
,只有一次。
0
('1', 'a') ('1', 'a')
ok
1
2 not found
('2', 'b') ('2', 'b')
ok
2
3 not found
3 not found
3 not found
所以你想''1,2,3'找不到'''而不是分开打印每一行? – Chuck
你的计数!= 1检查需要移出for循环,如果你不想重复 - 从我能理解的,这就是你想要的。现在它重复n次,其中n是文件中的行数。 – wave5459
@sinewaver,如果我向外移动循环只有最后一个未找到的号码将打印。在这种情况下,我想要打印3和4,但是它是这样的:x = ['1','2','3','4']和['a','b','c','d']将只打印4 – asteroid4u