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/