python - 当for循环不产生任何结果时如何返回结果
问题描述
嗨,我正在尝试将单词与单词数据进行比较,并检查输入单词是否为回文。例如,抽屉是一个回文,因为它的反向奖励也是一个真词。
我有以下代码-
words = sorted({line.strip().lower() for line in open('words.txt', 'r')})
# words is a standard English dictionary
def signature(word):
return ''.join(reversed(word))
def find_palindrom(myword):
mysig = signature(myword)
for word in words:
if mysig == word:
print(myword)
print(mysig)
print("It is a palindrome")
因此,find_palindrome(drawer) 将给出以下输出 - 抽屉奖励 它是回文
但是,如果我检查 find_palindrome(post),它不会输出任何内容,因为 tsop 不是有效单词。如何,我可以更新代码,以便如果单词(如帖子)不是回文,它会给出一个输出 -
post
tsop
Not a palindrome
解决方案
这是else
on a loop 的典型用法。有关详细信息,请参阅任何有关循环的中级教程。
for word in words:
if mysig == word:
print(myword)
print(mysig)
print("It is a palindrome")
break
else:
print(myword)
print(mysig)
print("It is NOT a palindrome")
注意仔细的缩进:else
匹配for
,而不是if
或者,您只需设置一个标志:
is_palindrome = False
for word in words:
if mysig == word:
is_palindrome = True
break
# Do your printing here; test the flag to choose the last line of output.
推荐阅读
- html - 将标题/标题与文本 HTML、CSS 对齐
- python - 为什么我的大都会算法(mcmc)的python实现这么慢?
- node.js - 如何保存/加载张量以加快训练速度?
- java - 解释PRD中的excel公式
- webpack - webpack-dev-server 的选项 devServer.index 的用例是什么
- java - 将 settext 添加到 textview 后运行 android 应用程序出错
- python - 如何使用 PySide 重新实现事件并传递和参数
- wordpress - 一个随机的“注册”按钮出现在 Wordpress 网站的每个页面的顶部
- python - 将事件重新发送到新启用的子小部件
- android - 如何访问存储中的用户文件