Python中 各种数字类型的判别(numerica, digital, decimal)
一、 全角和半角
全角:是指一个全角字符占用两个标准字符(或两个半角字符)的位置。 全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。
半角:是指一个字符占用一个标准的字符位置。半角占一个字节。 半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母、数字和字符都是半角的。
Tip:每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间)。汉语、日语、及朝鲜文等象形字语言的字库量远大于256个编码空间,所以改用两个字节来储存。同时,由于中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。
使用效果如下图
全角:
半角:
总结:
- 英文全部半角,占用一个字符位;
- 中文可选半角,全角(Shift+Space),全角占用两个字符位。
标点的切换用快捷键(Shift+。)
二、 isdigital,ismumerical,isdecimal的区别
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
num = ['1', '1', 'Ⅷ', '一', b'50']
decimal = [i for i in num[:4] if i.isdecimal()] # 仅单字节、双字节数字,byte数字报错
digital = [i for i in num if i.isdigit()] # 非汉子
numeric = [i for i in num[:4] if i.isnumeric()] # byte数字报错
print(decimal,digital,numeric, sep='\n')
运行结果:
['1', '1']
['1', '1', b'50']
['1', '1', 'Ⅷ', '一']
结论:
- isdigital() — 除汉子外
- isnumeric() — 除byte数字
- isdecimal() — 仅单、双字节数字
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16760801.html