python 常用模块

来源:互联网 发布:客户生日提醒软件 编辑:程序博客网 时间:2024/06/06 02:48
UserDict

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


>>> re.sub(r'(\w+) (\w+)',r'\2 \1','i say, helloworld!')
'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中的类型一一对应。

 

 

FormatC TypePython字节数xpad byteno value1ccharstring of length 11bsigned charinteger1Bunsigned charinteger1?_Boolbool1hshortinteger2Hunsigned shortinteger2iintinteger4Iunsigned intinteger or long4llonginteger4Lunsigned longlong4qlong longlong8Qunsigned long longlong8ffloatfloat4ddoublefloat8schar[]string1pchar[]string1Pvoid *long

 

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

for (int i= 0;i < list.Length; i++)
{
    
//todowith 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]) :  2choice('A String') :  n


 

0 0
原创粉丝点击