python 常用模块

原创 2016年08月29日 12:49:36
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


 

相关文章推荐

zwpy_lst常用第三方Python模块库zw版

  • 2016年04月24日 14:20
  • 420KB
  • 下载

python常用模块实例手册

  • 2016年06月30日 14:35
  • 45KB
  • 下载

python re模块常用方法总结

res = re.match(pattern, string, flags=0) #字符串的开头是否能匹配正则表达式。返回_sre.SRE_Match对象,如果 #不能匹配返回None。 # 如果匹配...

python中的常用模块

adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framewor...

Python模块常用的几种安装方式

Python模块安装 一、 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、 多文件模块,带setup.py python setup.py inst...

[转]常用的python模块及安装方法

[转]常用的python模块及安装方法 adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的che...

[转载]Python学习笔记三(常用模块)

原文地址:Python学习笔记三(常用模块)作者:sametouchPython 学习笔记三(常用模块) 1.os模块  os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函...
  • dy_252
  • dy_252
  • 2011年02月11日 15:19
  • 280

Python 常用模块使用

官方模块下载地址:https://pypi.python.org/pypi os模块 os.path.join(path1[,path2[,...]]) join函数用来连接多个...

python中常用的正则模块学习

正则表达式在处理字符串方面或者文本的预处理方面是比较常用的,我现在所用的编程语言是python,所以在此主要介绍python的正则表达式模块。python—-rere.match()尝试从字符串的开始...

常用的python模块(转)

常用的python模块(转) adodb:数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python&nbsp;常用模块
举报原因:
原因补充:

(最多只允许输入30个字)