新入门小白求大神解惑(关于python数字类型)
学习python函数,有几个函数对判断包含字符很困惑:1、 isalnum() 字符串中至少包含一个字符,且所有字符都是字母或数字则返回True,否则False。
name="幸福",name.isalnum()=True (不是说只是字母和数字嘛,幸福不是中文吗?)
2、还有就是isalnum()、isdecimal()、isnumeric(),百度了下这三个函数的区别,
但是还是不太理解 Unicode数字,byte数字(单字节)
num = "1"#unicode()
num = b"1" # byte(网上举了这个例子,byte数字为什么要在前面加“b”,是不是前面加“b”就是单字节)
能不能举简单的例子帮忙说明一下
————————————————
版权声明:本文为CSDN博主「观点小号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38475134/java/article/details/91043666 本帖最后由 Twilight6 于 2020-6-8 19:45 编辑
1、 isalnum() 字符串中至少包含一个字符,且所有字符都是字母或数字则返回True,否则False。
对的,中文也会返回True,因为计算机中存储汉字的方式是汉字内码,也就是以ASCII码储存的,所以这里才返回True
2、还有就是isalnum()、isdecimal()、isnumeric(),百度了下这三个函数的区别
[*]isalnum() 所有的字符都是字母或者数字返回True 否则返回False
'123asd'.isalnum()# 因为字符全是数字或者字母 返回 True
>>> True'1a...'.isalnum()# 因为字符内不全部都是字母或数字返回 False
>>> False
[*]isdecimal() 字符串内只包含十进制数字返回 True 否则返回False
Python 中二进制字符串前面是带 0b的字符串 比如 '0b1010'就是表示十进制的 10
八进制字符串前面带0o 比如'0o12' 就是表示十进制的 10
十六进制字符串前面会带0x 且大于9的数开始用字母a、b、c代替,a代表10,b代表11,直到f代表15,比如'0xa' 就代表十进制的 10
[*] isnumeric() 如果字符串中只包含数字字符 返回True 否则返回 False
num = "1"#unicode
num.isdigit() # True
num.isdecimal() # True
num.isnumeric() # True
num = "1" # 全角
num.isdigit() # True
num.isdecimal() # True
num.isnumeric() # True
num = b"1" # byte
num.isdigit() # True
num.isdecimal() # 报错:AttributeError 'bytes' object has no attribute 'isdecimal'
num.isnumeric() # 报错:AttributeError 'bytes' object has no attribute 'isnumeric'
num = "IV" # 罗马数字
num.isdigit() # True
num.isdecimal() # False
num.isnumeric() # True
num = "四" # 汉字
num.isdigit() # False
num.isdecimal() # False
num.isnumeric() # True
Ps:以上来源CSDN
byte(网上举了这个例子,byte数字为什么要在前面加“b”,是不是前面加“b”就是单字节)
不止数字,只要数据是 b 前缀代表的就是bytes 类型数据,这个不用举例子把...理解b是什么意义就行
字节具体看看这篇文章吧:https://www.jianshu.com/p/41cfc3362f18
页:
[1]