Python 007- python的各种函数
1.chr()、unichr()和ord()
chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的Python是如何被编译的。如果是配置为USC2的Unicode,那么它的允许范围就是range(65536)或0x0000-0xFFFF;如果配置为UCS4,那么这个值应该是range(1114112)或0x000000-0x110000。如果提供的参数不在允许的范围内,则会报一个ValueError的异常。
ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。
1 >>>ord('a') 2 97 3 >>> ord('b') 4 98 5 >>> ord('c') 6 99
2.getch()读取键盘输入字符
1 import msvcrt 2 ch = msvcrt.getch()
3.randrange()返回指定递增基数集合中的一个随机数
1 import random 2 3 # 输出 100 <= number < 1000 间的偶数 4 print "randrange(100, 1000, 2) : ", random.randrange(100, 1000, 2) 5 6 # 输出 100 <= number < 1000 间的其他数 7 print "randrange(100, 1000, 3) : ", random.randrange(100, 1000, 3)
4.assert
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
1 assert 1==1 2 assert 2+2==2*2 3 assert len(['my boy',12])<10 4 assert range(4)==[0,1,2,3]
5.transpose矩阵转置
1 array([[[ 0, 1, 2], 2 [ 3, 4, 5]], 3 4 [[ 6, 7, 8], 5 [ 9, 10, 11]]]) 6 7 arr1.transpose((1,0,2)) 8 array([[[ 0, 1, 2], 9 [ 6, 7, 8]], 10 11 [[ 3, 4, 5], 12 [ 9, 10, 11]]])
过程是怎样的?
arr1.shape 应该是(2, 2, 4) 意为 2维,2*4矩阵
arr1.transpose(*args) 里面的参数,可以这么理解,他是调换arr1.shape的顺序,咱来给arr1.shape标一下角标哈,(2[0], 2[1], 4[2]) [ ] 里是shape的索引,对吧,
transpose((1, 0, 2)) 的意思是 按照这个顺序 重新设置shape 也就是 (2[1], 2[0], 4[2])
虽然看起来 变换前后的shape都是 2,2,4 , 但是问题来了,transpose是转置
shape按照(1,0,2)的顺序重新设置了, array里的所有元素 也要按照这个规则重新组成新矩阵
比如 8 在arr1中的索引是 (1, 0, 0) 那么按照刚才的变换规则,就是 (0, 1, 0) 看看跟你结果arr2的位置一样了
6.any()与all()
#any(x)判断x对象是否为空对象,如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true
#all(x)如果all(x)参数x对象的所有元素不为0、''、False或者x为空对象,则返回True,否则返回False
1 >>> all(['a', 'b', 'c', 'd']) #列表list,元素都不为空或0 2 True 3 >>> all(['a', 'b', '', 'd']) #列表list,存在一个为空的元素 4 False 5 >>> any(['a', 'b', 'c', 'd']) #列表list,元素都不为空或0 6 True 7 >>> any(['a', 'b', '', 'd']) #列表list,存在一个为空的元素 8 True