l=['isalnum','isalpha','isascii','isdecimal','isdigit','islower','isnumeric','isprintable','isspace','isupper']
for s in l:
exec(r'''t=0
c=0
for i in range(0x110000):
if chr(i).{0}():
## if t==0:
## print('[',i)
## t=1
c+=1
## print(repr(chr(i)),end='')
## else:
## if t==1:
## print('\n',i-1,']\n')
## t=0
print('敲回车继续\t','{0}',c)
input()
'''.format(s))
input('统计完毕,敲回车将退出程序')
list1=[]
for i in range(int(0x10FFFF)+1):
s=chr(i)
if s.isnumeric():list1.append(s)
len(list1)
open("numeric.txt","w+",encoding="UTF-8").write(str(list1))
str.is:个数
alnum:133022 数字+字符(文字)
alpha:131241
ascii:128 (基础用字符)
decimal:650(各种语言中的0~9)
digit:778(以上+0~9的各种序号+b’’ 二进制数)
numeric:1862(以上+其他序号+拥有数字意义的特殊字符+中文中的数字文字)
printable:143680 (打印的出的字符)
lower:2344 (小写)
upper:1911(大写)
space:29 (空格)
l=[]
for i in range(0x110000):
if chr(i).isprintable():
if not chr(i).isalnum():
l.append(chr(i))
with open(r'c:\code\temp.txt','ba') as f:
buf=bytearray((str(len(l))+str(l)).encode('utf'))
f.write(buf)
因为内容太多,shell崩溃,于是输出至文件,因为不能用常规编码,就用字节码写入,还好记事本、浏览器等正常识别。
printable-alnum:10658 个,各种符号、字根、盲文、少数语言字符、单位符号、运算符号、图标等
!+¤֎௵₩↊℻℅≧⌚Ⓐ┿☠⣼⻊⿻㊚㍰㎾䷾꙰🂨🐅🖫😱🟈
性能分析:
printable=[]
for i in range(0x110000):
if chr(i).isprintable():printable.append(i)
260 ms
for i in printable:pass
2.84 ms
因为会对各种类型的字符进行统计,所以还是运行一次之后,导出保存的好。
exec("ld=list(%s)"%open("alnum_del_alpha.txt","r",encoding="UTF-8").read())
exec("ln=list(%s)"%open("numeric.txt","r",encoding="UTF-8").read())
ld1=ld.copy()
ln1=ln.copy()
[(ld1.remove(i),ln1.remove(i)) for i in ld if i in ln]
ld1:[]
ln1:['㐅',
'㒃',
'㠪',
'㭍',
'一',
'七',
'万',
'三',
'九',
'二',
'五',
'亖',
'亿',
'什',
'仟',
'仨',
'伍',
'佰',
'億',
'兆',
'兩',
'八',
'六',
'十',
'千',
'卄',
'卅',
'卌',
'叁',
'参',
'參',
'叄',
'四',
'壱',
'壹',
'幺',
'廾',
'廿',
'弌',
'弍',
'弎',
'弐',
'拾',
'捌',
'柒',
'漆',
'玖',
'百',
'肆',
'萬',
'貮',
'貳',
'贰',
'阡',
'陆',
'陌',
'陸',
'零',
'參',
'拾',
'兩',
'零',
'六',
'陸',
'什',
'𠀁',
'𠁤',
'𠃢',
'𠄡',
'𠤪',
'𠦃',
'𠦌',
'𠦜',
'𠫪',
'𠫽',
'𠬙',
'𢎐',
'𢦘',
'𣬛',
'𦉭',
'廾']