从for循环中仅打印一次消息

mul*_*rse 9 python for-loop

我想查找列表元素中是否包含特定字符串.如果找到该字符串,我想打印出"String found",否则"找不到字符串".但是,我提出的代码,使得"找不到字符串"的多个打印.我知道原因,但我不知道如何修复它并只打印一次消息.

animals=["dog.mouse.cow","horse.tiger.monkey",
         "badger.lion.chimp","trok.cat.    bee"]
      for i in animals :
          if "cat" in i:
              print("String found")
          else:
              print("String not found")
Run Code Online (Sandbox Code Playgroud)

Vik*_*kez 9

找到字符串时breakif块中添加语句,并将其移动elseelsefor循环中.如果是这种情况,如果发现字符串,则循环将中断并且永远不会到达else,并且如果循环没有制动,则将到达并将'String not found'打印.

for i in animals:
    if 'cat' in i:
        print('String found')
        break
else:
    print('String not found')
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用.如果"cat"出现在列表的最后一个元素上,您仍会多次打印"未找到字符串". (2认同)