鱼C论坛

 找回密码
 立即注册
查看: 2746|回复: 8

[已解决]萌新求助

[复制链接]
发表于 2020-2-23 14:52:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数字和数字字符有啥区别,也就是isdigit()和isnumeric()有啥区别
最佳答案
2020-2-23 15:00:40
本帖最后由 一个账号 于 2020-2-23 15:11 编辑

  1. num = "1"  #unicode
  2. num.isdigit()   # True
  3. num.isdecimal() # True
  4. num.isnumeric() # True

  5. num = "1" # 全角
  6. num.isdigit()   # True
  7. num.isdecimal() # True
  8. num.isnumeric() # True

  9. num = b"1" # byte
  10. num.isdigit()   # True
  11. num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
  12. num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'

  13. num = "Ⅵ" # 罗马数字
  14. num.isdigit()   # False
  15. num.isdecimal() # False
  16. num.isnumeric() # True

  17. num = "四" # 汉字
  18. num.isdigit()   # False
  19. num.isdecimal() # False
  20. num.isnumeric() # True
复制代码


========================================================================

isdigit()
True: Unicode 数字,byte 数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字
Error: 无

isdecimal()
True: Unicode 数字,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte 数字(单字节)

isnumeric()
True: Unicode 数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte 数字(单字节)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-23 14:57:23 | 显示全部楼层
这是数字:
  1. >>> 1 + 2
  2. 3
复制代码

这是数字字符:
  1. >>> '1' + '2'
  2. '12'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 15:00:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 一个账号 于 2020-2-23 15:11 编辑

  1. num = "1"  #unicode
  2. num.isdigit()   # True
  3. num.isdecimal() # True
  4. num.isnumeric() # True

  5. num = "1" # 全角
  6. num.isdigit()   # True
  7. num.isdecimal() # True
  8. num.isnumeric() # True

  9. num = b"1" # byte
  10. num.isdigit()   # True
  11. num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
  12. num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'

  13. num = "Ⅵ" # 罗马数字
  14. num.isdigit()   # False
  15. num.isdecimal() # False
  16. num.isnumeric() # True

  17. num = "四" # 汉字
  18. num.isdigit()   # False
  19. num.isdecimal() # False
  20. num.isnumeric() # True
复制代码


========================================================================

isdigit()
True: Unicode 数字,byte 数字(单字节),全角数字(双字节)
False: 汉字数字,罗马数字
Error: 无

isdecimal()
True: Unicode 数字,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte 数字(单字节)

isnumeric()
True: Unicode 数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte 数字(单字节)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-23 15:00:45 | 显示全部楼层
简单的说,对于0~9都是一样的,中文的数字对isnumeric()为True,对sdigit()为False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 15:02:27 | 显示全部楼层
qiuyouzhi 发表于 2020-2-23 14:57
这是数字:

这是数字字符:

能举个isdigit()和isnumeric()的例子吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 15:07:10 | 显示全部楼层
  1. >>> num = '123123123123'
  2. >>> num.isnumeric()
  3. True
  4. >>> num.isdigit()
  5. True
  6. >>> num = "1231asdasdasd"
  7. >>> num.isnumeric()
  8. False
  9. >>> num.isdigit()
  10. False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 15:07:47 | 显示全部楼层
便利贴壹号 发表于 2020-2-23 15:02
能举个isdigit()和isnumeric()的例子吗

isdigit()        如果字符串只包含数字则返回 True,否则返回 False。
isnumeric()        如果字符串中只包含数字字符,则返回 True,否则返回 False。

例如:
  1. number1= [1,2,3,4,5,6,7,8]
  2. number1.isdigit()#True

  3. number2 = ['1','2','3','4','5','6','7','8']
  4. number2.isnumeric()#True
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 15:09:22 | 显示全部楼层
一个账号 发表于 2020-2-23 15:00
===================
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马 ...

谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 15:12:19 | 显示全部楼层

刚刚写错了一点,先在再看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 08:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表