<p>我有一段要求输入的代码。输入不得包含任何数字:</p>
<pre><code>def main():
invalid = []
foo = ""
foo = str(input("Enter a word: ") )
invalid = ["1","2","3","4","5","6","7","8","9","0"]
for eachInvalid in invalid:
if eachInvalid in foo:
print("Not a real word!")
main()
else:
pass
main()
</code></pre>
<p>到目前为止,它的工作,但我并不自豪。最好的办法是什么?例如,一个单词不包含像~@:这样的内容,所以我必须将它们添加到该列表中。如何避免这种情况,同时保持代码的干净性和可读性?你知道吗</p>
<p>另外,还有一个错误,如果我运行代码并键入像hello这样的内容,这是有效的,但是如果我键入了无效的内容,它会把我带回到开头,但是当我键入一个有效的词时,它仍然表示无效?例如:</p>
<pre><code>Enter a word: hello
>>> ================================ RESTART ================================
>>>
Enter a word: 123
Not a real word!
Enter a word: hello
Not a real word!
</code></pre>
<p>如何修复此错误?在输入中查找无效字符的最佳方法是什么?你知道吗</p>
<p><em>编辑:无需担心,正则表达式很好。</em></p>
<p>您可以使用更简单的方法来测试整个字符串中的一个数字,而不是单独测试每个字母。你知道吗</p>
<pre class="lang-python prettyprint-override"><code>if any(x.isdigit() for x in foo):
print("Invalid Word")
else:
print("valid word")
</code></pre>