Chinaunix首页 | 论坛 | 博客
  • 博客访问: 490618
  • 博文数量: 28
  • 博客积分: 858
  • 博客等级: 一等列兵
  • 技术积分: 852
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-02 14:13
文章分类

全部博文(28)

文章存档

2020年(1)

2019年(1)

2018年(5)

2017年(1)

2014年(1)

2013年(2)

2012年(17)

分类: LINUX

2012-12-19 09:23:10

1 python代码执行跟踪
  python -m trace --trace CheckDigit.py 
2 python判断是否为数字
  

点击(此处)折叠或打开

  1. def CheckDigit(Num):
  2.     try:
  3.         Num = int(Num)
  4.     except:
  5.         print "%s is not a digit"%str(Num)
  6.     if isinstance(Num, int):
  7.         print "%s is a digit"%str(Num)
  8.     else:
  9.         print "%s is not a digit"%str(Num)
3. python 判断是文件或者目录
  os.path.isfile(file_name)
  os.path.isdir(dir_name)
4. python中的*args和**kwargs
   首先这两个是传给python函数的参数,其中*args在前,**kwargs在后,其中args是无名参数,**kwargs是有名参数,比如foo(1,2,3,4,a=1,b=2,c=3,d=4),其中args是(1,2,3,4)的一个元组,而kwargs是{‘a’=1,‘b’=2,‘c’=3,‘d’=4}的一个字典。**kwargs的一个应用是创建一个字典。

点击(此处)折叠或打开

  1. def mkdict(**kwargs):
  2.     return kwargs
5. 字典中加入其它字典元素
  a是个字典,b是个字典
  a.update(b)
  现在a是a和b的并集。
6. 判断一个字典中是否有某个值
  a.has_key(key)返回True或者False
7. 判断一个字典是否有某个值,有就返回某个值,否则抛出异常
  a.get(key,Error_message)
  有的话返回value,否则返回Error_message
8. 两个字典求并集
  

点击(此处)折叠或打开

  1. def timeo(func, n=1000):
  2.     def void():
  3.         pass
  4.     start = time.clock()
  5.     for i in range(n):
  6.         void()
  7.     stend = time.clock()
  8.     overhead = stend - start
  9.     start = time.clock()
  10.     for i in range(n):
  11.         func()
  12.     stend = time.clock()
  13.     thetime = stend - start
  14.     return func.__name__, thetime - overhead
  15. to500 = {}
  16. for i in range(500):
  17.     to500[i] = 1
  18. evens = {}
  19. for i in range(0,1000,2):
  20.     evens[i] = 1
  21. def badslowlyway():
  22.     insection = []
  23.     for item in to500.keys():
  24.         if item in evens.keys():
  25.             insection.append(item)
  26.     return insection
  27. def simplyway():
  28.     insection = []
  29.     for item in to500.keys():
  30.         if evens.has_key(item):
  31.             insection.append(item)
  32.     return insection
  33. def pyth22way():
  34.     return [ x for x in to500 if x in evens]
  35. def filterway():
  36.     return filter(to500.has_key, evens.keys())

点击(此处)折叠或打开

  1. [root@node5 python_scripts]# python insection.py
  2. badslowlyway:7.62
  3. simplyway:0.17
  4. pyth22way:0.08
  5. filterway:0.03
  其中后面的效率更快,代码更pythonic。
阅读(2525) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~