Python中的random模块用于生成随机数。下面介绍一下random模块中最经常使用的几个函数。 python
print random.uniform ( 10 , 20 ) print random.uniform ( 20 , 10 ) #---- 结果(不一样机器上的结果不同) #18.7356606526 #12.5798298022
print random.randint ( 12 , 20 ) #生成的随机数n: 12 <= n <= 20 print random.randint ( 20 , 20 ) #结果永远是20 #print random.randint(20, 10) #该语句是错误的。下限必须小于上限。
random.randrange ( 10 , 100 , 2 )
在结果上与 random.choice(range(10, 100, 2) 等效。 web
print random.choice ( "学习Python" ) print random.choice ( [ "JGood" , "is" , "a" , "handsome" , "boy" ] ) print random.choice ( ( "Tuple" , "List" , "Dict" ) )
p = [ "Python" , "is" , "powerful" , "simple" , "and so on..." ] random.shuffle ( p ) print p #---- 结果(不一样机器上的结果可能不同。) #['powerful', 'simple', 'is', 'Python', 'and so on...'] list = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] slice = random.sample ( list , 5 ) #从list中随机获取5个元素,做为一个片段返回 print slice print list #原有序列并无改变。
上面这些方法是random模块中最经常使用的,在Python手册中,还介绍其余的方法。感兴趣的朋友能够经过查询Python手册了解更详细的信息。 app
最后我们用上面介绍的随机函数来简单的模拟下黑客帝国的随机字符滚屏效果 :) dom
#coding:utf-8 # #简单的几句Python语句,模拟滚动的Matrix屏保 # # 1. 打开Windows命令行(运行-》输入“cmd”而后回车) # 2. 打开命令行属性设置,设置背景为黑色,前景为绿色 # 3. 执行这个脚本,就能够看到相似电影《骇客帝国》中的经典滚屏了 – 不过是反着的。。。 # #呵呵,无聊之做。。。Alt+Enter全屏观看效果更好 import random, string a = " " * 100 + string.printable while True: print a[random.randint(0,len(a)-1)],
sort函数是序列的内部函数 函数
L.sort ( cmp = None , key = None , reverse = False )
def f ( a , b ) : return a - b
若是排序的元素是其余类型的,若是a逻辑小于b,函数返回负数;a逻辑等于b,函数返回0;a逻辑大于b,函数返回正数就好了 学习
(2) key参数
key也是接受一个函数,不一样的是,这个函数只接受一个元素,形式以下 google
def f ( a ) : return len ( a )
key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序 spa
(3) reverse参数
接受False 或者True 表示是否逆序 命令行
L = [ { 1 : 5 , 3 : 4 } , { 1 : 3 , 6 : 3 } , { 1 : 1 , 2 : 4 , 5 : 6 } , { 1 : 9 } ] def f ( x ) : return len ( x ) sort ( key = f ) print L
输出: code
[ { 1 : 9 } , { 1 : 5 , 3 : 4 } , { 1 : 3 , 6 : 3 } , { 1 : 1 , 2 : 4 , 5 : 6 } ]
(2)按照每一个字典元素里面key为1的元素的值排序
L = [ { 1 : 5 , 3 : 4 } , { 1 : 3 , 6 : 3 } , { 1 : 1 , 2 : 4 , 5 : 6 } , { 1 : 9 } ] def f2 ( a , b ) : return a [ 1 ] - b [ 1 ] L.sort ( cmp = f2 ) print L
输出:
[ { 1 : 1 , 2 : 4 , 5 : 6 } , { 1 : 3 , 6 : 3 } , { 1 : 5 , 3 : 4 } , { 1 : 9 } ]
或者例如:http_details.sort(cmp=lambda x,y: cmp(x[3], y[3])) # 按 key 为 3 的元素的值进行排序:sort by size
详见:https://code.google.com/p/selenium-profiler/source/browse/trunk/web_profiler.py
http://codingso.sinaapp.com/archives/38
http://codingso.sinaapp.com/archives/40
http://www.2maomao.com/blog/several-python-scripts-wrote-recently/