Python-如果字符串与字符串不匹配,则只打印一次



所以我试图制作一个比较脚本,如果有匹配的字符串,我基本上会制作,然后打印出来,否则只打印出它不包含的字符串。

我现在的问题是,每当它包含字符串时,它只打印一次,这很好,但每当它找不到匹配的字符串时,就会打印出很多不匹配的字符串。

etc:

for words in stackoverflow:
word_random = words #random meaning every loop
#"Hello my name is Python and the World is so amazing What"
#My name is Python and it is amazing!

Matching_keyword = ['Hello', 'World', 'What']
for keyword in Matching_keyword:
if keyword in word_random:
print(keyword)
else:
print(keyword)
Output:
Hello
World
What
Hello
World
What
Hello
World
What
Hello
World
What
Hello
World
What
Hello
World
What
Hello
World
What
Hello
World
....
....
....

输出几乎永远不会结束,而且比这里打印的输出要长得多。正如你所看到的,我在顶部有一个for循环,它经过的每一个循环都赋予了一个新的意义,我在那里进行了比较。

我的问题是,我该如何使其达到true时,它应该只打印出一次关键字,而else语句也是如此?

我试着使用break,但这扼杀了Matching_keyword循环,只打印出Hello,但很多次都是

for keyword in Matching_keyword:
if keyword in word_random:
print("Found matching" + keyword)
break
else:
print("Did not find matching")
break

在这种情况下,您希望将else用于循环,而不是条件循环。

for keyword in Matching_keyword:
if keyword in word_random:
print("Found matching" + keyword)
break
else:
print("Did not find matching")

循环上的else子句只有在循环由于迭代器耗尽而终止时才执行。如果以break或异常退出,则else不会执行。因此,在这里,一旦找到匹配项,就使用break来停止检查其他关键字,并且还可以避免使用else。如果从未找到匹配项,则循环"自然"终止(并且不产生任何输出(,else子句将打印失败消息。

相关内容

  • 没有找到相关文章

最新更新