关闭

python 常用模块

56人阅读 评论(0) 收藏 举报
分类:
UserDict

>>> dict1=UserDict({'a':1,'b':2}).keys()
>>> dict1
['a', 'b']


>>> re.sub(r'(\w+) (\w+)',r'\2 \1','i say, hello world!')
'say i, world hello!'


>>> m
'say i'

>>> m.title()
'Say I'
>>>


http://www.cnblogs.com/qq78292959/archive/2013/04/07/3003607.html

总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。

python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。

 

import struct

a=12.34

#将a变为二进制

bytes=struct.pack('i',a)

 

此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同。

再进行反操作

 

现有二进制数据bytes,(其实就是字符串),将它反过来转换成python的数据类型:

a,=struct.unpack('i',bytes)

注意,unpack返回的是tuple

 

所以如果只有一个变量的话:

bytes=struct.pack('i',a)

那么,解码的时候需要这样

a,=struct.unpack('i',bytes) 或者 (a,)=struct.unpack('i',bytes)

如果直接用a=struct.unpack('i',bytes),那么 a=(12.34,) ,是一个tuple而不是原来的浮点数了。

如果是由多个数据构成的,可以这样:

 

a='hello'

b='world!'

c=2

d=45.123

bytes=struct.pack('5s6sif',a,b,c,d)

 

此时的bytes就是二进制形式的数据了,可以直接写入文件比如 binfile.write(bytes)

然后,当我们需要时可以再读出来,bytes=binfile.read()

 

再通过struct.unpack()解码成python变量
a,b,c,d=struct.unpack('5s6sif',bytes)

 

'5s6sif'这个叫做fmt,就是格式化字符串,由数字加字符构成,5s表示占5个字符的字符串,2i,表示2个整数等等,下面是可用的字符及类型,ctype表示可以与python中的类型一一对应。

 

 

Format C Type Python 字节数
x pad byte no value 1
c char string of length 1 1
b signed char integer 1
B unsigned char integer 1
? _Bool bool 1
h short integer 2
H unsigned short integer 2
i int integer 4
I unsigned int integer or long 4
l long integer 4
L unsigned long long 4
q long long long 8
Q unsigned long long long 8
f float float 4
d double float 8
s char[] string 1
p char[] string 1
P void * long

 

 其他语言中,比如C#,我们通常遍历数组是的方法是:

for (int i = 0; i < list.Length; i++)
{
    
//todo with list[i]
}


在Python中,我们习惯这样遍历:

for item in sequence:
   
process(item)


这样遍历取不到item的序号i,所有就有了下面的遍历方法:

for index in range(len(sequence)):
    process(sequence[index])


其实,如果你了解内置的enumerate函数,还可以这样写:

for index, item in enumerate(sequence):
    process(index, item)

 

描述

choice() 方法返回一个列表,元组或字符串的随机项。


 

import random

print "choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9])
print "choice('A String') : ", random.choice('A String')

以上实例运行后输出结果为:

choice([1, 2, 3, 5, 9]) :  2
choice('A String') :  n


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34371次
    • 积分:440
    • 等级:
    • 排名:千里之外
    • 原创:76篇
    • 转载:14篇
    • 译文:0篇
    • 评论:3条
    最新评论