如何判断字符串是否以数字开头(Python)?

141 投票
12 回答
188242 浏览
提问于 2025-04-16 15:15

我有一个字符串,它的开头是一个数字(从0到9)。

我知道可以用startswith()这个方法来检查字符串是否以某个数字开头,不过我觉得这样写有点麻烦。

所以,我不想写成这样:

if (string.startswith('0') || string.startswith('2') ||
    string.startswith('3') || string.startswith('4') ||
    string.startswith('5') || string.startswith('6') ||
    string.startswith('7') || string.startswith('8') ||
    string.startswith('9')):
    #do something

有没有更聪明或者更有效的方法呢?

12 个回答

29

令人惊讶的是,经过这么长时间,仍然没有最好的答案。

其他答案的缺点在于使用 [0] 来选择第一个字符,但正如所提到的,这在空字符串上会出问题。

使用以下方法可以避免这个问题,而且在我看来,这种写法是我们选项中最漂亮、最易读的。它也不需要使用正则表达式,简单明了:

>>> string = '1abc'
>>> string[:1].isdigit()
True

>>> string = ''
>>> string[:1].isdigit()
False
34

在编程中,有时候我们需要处理一些数据,比如从一个地方获取信息,然后在另一个地方使用这些信息。这个过程就像是把水从一个水壶倒到另一个水壶一样。

当我们在写代码时,可能会遇到一些问题,比如数据格式不对,或者我们想要的数据没有被正确获取。这就像是你想喝水,但水壶里没有水,或者水壶的嘴太小,水倒不出来。

为了避免这些问题,我们可以使用一些工具和方法来确保数据能够顺利地从一个地方转移到另一个地方。这就像是使用一个漏斗来帮助你把水倒得更顺畅。

总之,处理数据时要注意格式和获取方式,确保一切都能顺利进行,这样才能让我们的程序正常工作。

>>> string = '1abc'
>>> string[0].isdigit()
True
247

Python的 string 库里有一个叫 isdigit() 的方法:

string[0].isdigit()

撰写回答