我有一个以数字(从0到9)开头的字符串,我知道我可以使用startswith()“或”10个测试用例,但可能有一个更简洁的解决方案
因此,与其写
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有没有更聪明/更有效的方法?
发布于 2011-04-07 15:37:04
Python的string库有isdigit()方法:
string[0].isdigit()发布于 2011-04-07 15:37:04
>>> string = '1abc'
>>> string[0].isdigit()
True发布于 2019-08-09 22:11:11
令人惊讶的是,在这么长的时间之后,仍然没有最好的答案。
其他答案的缺点是使用[0]选择第一个字符,但如前所述,这会在空字符串上中断。
使用下面的代码避免了这个问题,在我看来,它给出了我们所拥有的选项中最漂亮和最易读的语法。它也不会导入/困扰正则表达式):
>>> string = '1abc'
>>> string[:1].isdigit()
True
>>> string = ''
>>> string[:1].isdigit()
Falsehttps://stackoverflow.com/questions/5577501
复制相似问题