[TOC]
python个人手册
编码相关
byte编码
decode:默认utf-8,将bytes直接转换成string
decode:同上,将string转换成bytes
所以,以上情况下只是简单的储存格式改变,但是如果用了别的编码格式就不一样了。
int函数
本来有个int函数的,可以转换成十进制整型,可以加上一个表示原来是几进制的数字,当然没有也可以。
这个是另外一种,但也不需要引入库。
bytes是要转换的十六进制;
byteorder:选’big’和’little’,以上例为例,其中big代表正常顺序,即f1ff。little反之,代表反序fff1;
signed:选True、Flase表示是否要区分二进制的正负数含义。即是否要对原二进制数进行原码反码补码操作。
s1 = b'\xf1\xff'
print(int.from_bytes(s1, byteorder='big', signed=False))
print(int.from_bytes(s1, byteorder='little', signed=True))
#输出:
61951
-15
对齐函数
str.rjust(width,fillchar)
s1 = b'asf'
print(s1.decode().rjust(10,'.'))
#.......asf
ljust同理。
索引函数
list = [1,2,3,4,5,6]
ind = 2
print(list.index(ind))
#1
set函数
创造set数据,是一个无序不重复集合,以花括号表示,可以进行差集交集并集的操作,增删集合内元素用add和remove等来操作。
split函数
切割字符串形成数组,默认切割的是空格。
join函数
将数组的内容相连。
位运算符
按位与运算,只有同为1的时候输出的结果才为1.
1 & 1 = 1
1 & 0 = 0
0 & 0 = 0
常用语if语句,由于if只要大于零就算true进入循环,因此可以设置特定的数据,达到判断输入的数字的二进制位数哪一位是1,只要有一位满足要求就通过。
eg: 如果是0x80则只有第8位有可能为真,即检查第8位是否为1,是则进入if语句
按位或运算,只要两个数的相应位置有一个1就输出1
1 | 1 = 1
1 | 0 = 1
0 | 0 = 0
按位异或,对应数位不同则输出1,相同则输出0
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 0 = 0
求反运算,是单目运算符,字面意思。
移位函数
>>是右移,相当于整除以2
<<是左移,相当于乘以2
>>=和<<=就是移位之后赋值
库函数
Crypto.Util.number
bytes_to_long
转换成ASCII码,一个字符占据一个字节。
eg: b’abc’ => 97 * 2^16 + 98 * 2^8 + 99 * 2^0 = 63821
gmpy2
gcd( xi )
可以放很多int数下去,求公因式
binascii
chr():把一个整形转换成ASCII码表中对应的单个字符
ord():把ASCII码表中的字符转换成对应的整形
hex():把十进制转换成16进制字符
oct():把十进制转换成八进制字符
bin():把十进制整形转换成二进制字符
还有别的感觉没啥用。
base64
感觉也是同上,其实这些库函数的名字都比较好识别,我自己基本上不会用到,但是有时候看别人的脚本可能还是现场查算了。
迭代器相关
map(function, iterable)
会返回一个迭代器,一般与list函数配合使用。
a = list(map(int, input().split()))
reduce(function, iterable)
是个python2的库函数,在python3被移到functools模块中,需要导入。
感觉和map差不多但是这个可以直接输出,比如配合add函数达到sum的效果×
itertools库
专门写一篇。
突然不想写了,世间事都那么无趣,总不是一句三分钟热度就有三分钟收获就可以自我安慰的。