<p>试图让python返回字符串只包含字母和空格</p>
<pre><code>string = input("Enter a string: ")
if all(x.isalpha() and x.isspace() for x in string):
print("Only alphabetical letters and spaces: yes")
else:
print("Only alphabetical letters and spaces: no")
</code></pre>
<p>我一直在尝试<code>please</code>,结果是<code>Only alphabetical letters and spaces: no</code>我用了<code>or</code>而不是<code>and</code>,但这只满足一个条件。我需要两个条件都满足。也就是说,句子必须只包含<em>字母</em>和<em>空格</em>但必须至少包含每种类型中的一个。它必须<em>不</em>包含任何数字。</p>
<p>在这里,python返回的字母和空格只包含在字符串中缺少什么?</p>
<p>实际上,这是一个模式匹配练习,为什么不使用模式匹配呢?</p>
<pre><code>import re
r = re.compile("^[a-zA-Z ]*$")
def test(s):
return not r.match(s) is None
</code></pre>
<p>或者在解决方案中使用<code>any()</code>有什么要求吗?</p>