<p>关于什么是名字,什么不是名字,你有一个棘手的问题。(<a href="https://www.bbc.com/news/magazine-36107590" rel="nofollow noreferrer">https://www.bbc.com/news/magazine-36107590</a>)</p>
<p>但是,在任何情况下,提供给您的要求都没有明确定义要接受或拒绝什么。您的示例表明要拒绝数字</p>
<p>有几种方法可以实现这一点。
在python中检查特定模式的一种方法是使用正则表达式(regex)。您可以在这里搜索,并确定用于模式匹配的健壮方法</p>
<p>在这种情况下,如果唯一的要求是拒绝数字,那么您还可以利用这样一个事实,即如果您请求将文本转换为整数,python将生成一个错误。您可以利用这一事实来区分字符串中的所有数字,而不是所有数字</p>
<p>下面的示例显示了如何使用try/except块(也是python范例)来实现这一点</p>
<pre><code>ls_test_names = ['Brooke', 'Raj2', '567', '3', '3.141592654']
for t in ls_test_names:
try:
name = int(t)
print('%s looks like digits to me' % t)
except ValueError as ve:
print('ValueError : %s' % str(ve))
print('%s : is not all digits' % t)
name = t
</code></pre>
<pre><code>ValueError : invalid literal for int() with base 10: 'Brooke'
Brooke : is not all digits
ValueError : invalid literal for int() with base 10: 'Raj2'
Raj2 : is not all digits
567 looks like digits to me
3 looks like digits to me
ValueError : invalid literal for int() with base 10: '3.141592654'
3.141592654 : is not all digits
</code></pre>