|  | 
 
| 
本帖最后由 tommyyu 于 2022-1-25 16:43 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 isdecimal()、isdigit()、isnumeric()都是判断字符串是否为数字构成的字符串方法。区别如下(小甲鱼视频里有):
 | isdecimal()的返回值  | isdigit() 的返回值| isnumeric()的返回值|
 +----------------------------------------------------------+--------------------------+---------------------+-------------------------|
 |判断由数字组成的字符串 (例:"123")               |             True            |          True          |            True           |
 +----------------------------------------------------------+--------------------------+----------------------+------------------------|
 |判断由2等符号组成的字符串(例:"22")             |            False            |          True           |             True         |
 +----------------------------------------------------------+--------------------------+----------------------+------------------------|
 |判断由罗马数字组成的字符串(例:"ⅠⅡⅢ")    |             False            |          False        |            True           |
 +----------------------------------------------------------+--------------------------+---------------------+-------------------------|
 |判断由汉字组成的字符串(例:"一壹")           |           False             |          False         |           True            |
 +----------------------------------------------------------+-------------------------+---------------------+-------------------------+
 isdecimal()只判断数字, isdigit()判断数字和特殊的数字(如2),isnumeric()判断数字和不同语言的字符。直觉上来讲,执行效率应该是isdecimal()最快,isdigit()其次,isnumeric()最慢,但结果恰恰相反
 请问有人能解释一下么
 
我知道您的错误原因了: 
您在测试时用的应该是 timeii.timeit(), 
而不是 timeit.repait(), 
所以真正的结果应该是如此:
 复制代码x = timeit.timeit("'123'.isdecimal()",number = 100)
x
6.199999916134402e-06
x = timeit.timeit("'123'.isdigit()",number = 100)
x
6.8999997893115506e-06
x = timeit.timeit("'123'.isnumeric()",number = 100)
x
9.499999578110874e-06
所以真实结果与您得出的恰恰相反!
懂了吗?懂了就给个好评呗!!!     ’
打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!      | 
 
  |