日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python随机数(转载)

發布時間:2024/8/26 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 python随机数(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨機生成 0 到 1 之間的浮點數

random.random() 方法會返回 [0.0, 1.0) 之間的浮點數,注意,這是一個左閉右開的區間,隨機數可能會是 0 但不可能為 1 。

隨機生成 a 與 b 之間的整數

使用 random.randint(a , b) 方法,你可以生成一個 a 與 b 之間的隨機整數,也就是 [a, b] 。

當然,如果你想要生成的隨機整數不會包含 b ,也即 [a, b) , 你可以使用 random.randrange() 方法。

生成 a 與 b 之間的浮點數

如果你需要生成 [a, b] 之間的隨機浮點數,那么 random.uniform(a, b) 會滿足你的需求。

從列表中隨機取出一個元素

如果你想從序列類型中隨機取出一個元素,比如列表、元祖、字符串等,random.choice() 是一個不錯的選擇。

需要注意的是,該方法需要參數非空,不然會拋出 IndexError 的錯誤。

打亂列表中元素的順序

使用 random.shuffle(items) 方法可以幫你把序列 items 中的元素隨機打亂。

如果你不想修改原來的列表,你可以使用 copy 模塊先拷貝一份原來的列表

從列表中隨機取出 n 個元素

使用 random.sample(items, n) 方法可以從序列 items 中隨機取出 n 個元素。

生成密碼學安全的偽隨機數

什么是密碼學安全的偽隨機數,請看維基百科( http://dwz.cn/7JhRN5 )。不過暫時不需要深入的話,理解為比普通隨機數更隨機的技術就好。

如果你需要生成密碼學安全的隨機數,你可以通過 random.SystemRandom 類實現。random.SystemRandom 實例化后的對象擁有與 random 類似的方法。

如果 Python 版本在 3.6 及以上,可以使用 secrets 模塊

通過 secrets 模塊,同樣也能生成密碼學安全的隨機數。并且,利用它生成一些特定的秘鑰特別方便。

下面是一些簡單的例子

通過這個模塊比較字符串相等,還可以減少被時序攻擊的風險。

什么是時序攻擊呢,我這找了一個通俗的解釋

舉一個最簡單的計時攻擊的例子,某個函數負責比較用戶輸入的密碼和存放在系統內密碼是否相同,如果該函數是從第一位開始比較,發現不同就立即返回,那么通過計算返回的速度就知道了大概是哪一位開始不同的,這樣就實現了電影中經常出現的按位破解密碼的場景。密碼破解復雜度成千上萬倍甚至百萬千萬倍的下降。

(文字來源知乎,侵刪)

關于secrets 模塊的更多介紹,請看官方文檔( https://docs.python.org/3/library/secrets.html )

轉載自:http://baijiahao.baidu.com/s?id=1596465591200328534&wfr=spider&for=pc

總結

以上是生活随笔為你收集整理的python随机数(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。