Python-For循环遍历所有内容,然后打印?

Python-For循环遍历所有内容,然后打印?,python,loops,for-loop,printing,Python,Loops,For Loop,Printing,这就是我提供的代码,描述如下:) 输出 Did not find name Did not find name Did not find name Did not find name Did not find name Did not find name Did not find name Profile-1 Found name 我想要的是,它不应该说“没有找到名称”,直到它将所有名称循环通过循环,然后说它没有找到任何名称。 但是它现在做的是一个接一个地循环每个名字,直到找到名字,然后我用b

这就是我提供的代码,描述如下:)

输出

Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Profile-1 Found name
我想要的是,它不应该说“没有找到名称”,直到它将所有名称循环通过循环,然后说它没有找到任何名称。 但是它现在做的是一个接一个地循环每个名字,直到找到名字,然后我用break不再搜索其他名字,因为它不需要了

所以问题是,我怎样才能把它转过来,当它循环每个名字时,它会说没有找到名字,然后在循环所有名字后,它会说没有找到名字

编辑:

因此,每当它找到名称时,它将转到
addtonotes={'id':nameID}
,然后它将被添加到addtonotes,但它找不到,然后会有一个回溯说:

Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Did not find name
Traceback (most recent call last):
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Test.py", line 153
     addtonotes = {'id': nameID}
NameError: name 'nameID' is not defined
所以我还想知道的是,当它找不到任何名称时,它应该只使用Sys.exit(),但我现在不能在else语句中这样做,因为它将在第一个循环中使用Sys.exit


我希望有人能理解这个问题:)

最简单的方法是在循环之前将
nameID
设置为空值:

nameID = None
for name in names.find_all('option'):
    if myName == foundName:
        nameID = size.get('value')
        print('Profile-1 Found name')
        break

if nameID is None:
    print('Did not find name')
然而,Python
for
循环实际上对这种情况有专门的语法;您可以将
else:
块添加到
for
循环中。它仅在
for
循环完成时执行,即没有
中断
提前结束循环时:

for name in names.find_all('option'):
    if myName == foundName:
        nameID = size.get('value')
        print('Profile-1 Found name')
        break
else:
    print('Did not find name')

哦它帮助了abit,但现在发生的事情是,它说它找到了名字,但也说它没有找到。输出将显示
Profile-1 Found name-not find name
,但这是您进行的第二次编辑。@WeInThis:我发布的代码不能同时打印这两个内容;打印
Profile-1 Found name
并执行
break
,或者到达
else
块。它不能同时做这两件事,因为
中断
。哦,好的。我确实尝试了第一个解决方案,并且似乎在没有中断的情况下也得到了我想要的结果:)我想我可以将此标记为已解决。我还不确定,但我会四处看看。到目前为止还不错!:)我可以说并确认,
如果nameID为None:
是我的解决方案,并且可以按照我的意愿工作!:)非常感谢@Martijn
for name in names.find_all('option'):
    if myName == foundName:
        nameID = size.get('value')
        print('Profile-1 Found name')
        break
else:
    print('Did not find name')