Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313425
  • 博文数量: 111
  • 博客积分: 1463
  • 博客等级: 上尉
  • 技术积分: 1005
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-02 11:40
文章分类

全部博文(111)

文章存档

2011年(2)

2010年(8)

2009年(52)

2008年(5)

2007年(5)

2006年(21)

2005年(17)

2004年(1)

我的朋友

分类: Python/Ruby

2011-06-16 16:57:27

  python 包含的模块和函数都非常丰富,但在目前版本里缺找不到十进制到二进制转化的现成函数,看到网友在帖子里发了一个关于二进制转化的小段,把它转过来,顺便也添加一些类似的函数,一起作为学习的笔记:
 

#!/usr/bin/python

def bin(x):
        result = ''
        x = int(x)
        while x > 0:
                mod = x % 2
                x /= 2
                result = str(mod) + result
        return result

if __name__ == '__main__':
        print bin(12)

上边小段程序可以帮你轻松的事先十进制到二进制的转化工作。

应用:
import bin
bin.bin(123)

或者:
from bin import bin
bin(123)

 

下边给出其他相关进制转化的函数:

10进制转2进制:bin(123)
2进制转10进制:int('10',2)

10进制转16进制:hex(10)
16进制转10进制:int('f',16)     或 int(0xf) 

10进制转8进制:oct(18)
8进制转10进制:int('022',8)

 

字符转化为ASCII: ord('A')
ASCII转化为字符:chr(65)

小写字母转大写:string.upper()
大写字母转小写:string.lower()

 

下面是数据类型相关的转化函数:

int()  函数把数字和字符串转换成一个整数。
str()  函数把对象转换成可打印字符串。
float()函数把一个数字或字符串转换成浮点数。
long() 函数把数字和字符串转换成长整数。
list() 函数可将序列对象转换成列表。

 

其他类型的常用函数:

min() 函数返回给定参数的最小值,参数可以为序列。
max() 函数返回给定参数的最大值,参数可以为序列。
cmp() 函数比较x和y两个对象,并根据比较结果返回一个整数,如果x<y,则返回-1;如果x>y,则返回1,如果x==y则返回0。

abs(返回一个数字的绝对值。
divmod(x,y函数完成除法运算,返回商和余数。
pow(函数返回以x为底,y为指数的幂。
round(x[,n]函数返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

callable(函数用于测试对象是否可调用,如果可以则返回1();否则返回0()
type(函数可返回对象的数据类型。

len()  函数返回字符串和序列的长度。
range()函数可按参数生成连续的有序整数列表。

 

一个简单的自定义函数的示范:

def myfun(x): return x+
>>> myfun(3)

 

一个经典的计算程序耗时的示范:

#!/usr/bin/env python

import time


startTime = time.time() 
    do somthings
endTime = time.time() 
print "Finished in %f seconds!" % (endTime - startTime) 

结果: 
Finished in 0.375000 seconds!

 

map() 函数的经典应用:

#!/usr/bin/env python
lst01 = (2,4,6,8,9)
lst02 = (4,3,4,3,1)
print map((lambda x,y: x+y),lst01,lst02)
print map((lambda x,y: x-y),lst01,lst02)
print map((lambda x,y: x*y),lst01,lst02)
print map((lambda x,y: x/y),lst01,lst02)
print map((lambda x,y: x/2),lst01,lst02)
print map((lambda x,y: x**2),lst01,lst02)
print map((lambda x,y: x**y),lst01,lst02)
print map((lambda x,y: x+y+1),lst01,lst02)
print map((lambda x: x+1),lst01)
print map((lambda x: x+1),range(10))
print map((lambda x: chr(x)),range(65,80))

结果:
[6, 7, 10, 11, 10]
[-2, 1, 2, 5, 8]
[8, 12, 24, 24, 9]
[0, 1, 1, 2, 9]
[1, 2, 3, 4, 4]
[4, 16, 36, 64, 81]
[16, 64, 1296, 512, 9]
[7, 8, 11, 12, 11]
[3, 5, 7, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']

阅读(659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~