我用以下方式生成隨機字符串(現在我已切換到this method)。十六進制到python中的字符串格式轉換
key = '%016x' % random.getrandbits(128)
產生這種方式的關鍵是最常見的是32字符串,但一旦我有31個字符。
這是我不明白:爲什麼它是32個字符,而不是16?一個十六進制數字是否需要打印一個字符?
所以,如果我要求%016x
-不應該有人預期16個可能的前導零字符?
爲什麼string legth不總是一樣的?
測試用例
import random
import collections
stats = collections.defaultdict(int)
for i in range(1000000):
key = '%016x' % random.getrandbits(128)
length = len(key)
stats[length] += 1
for key in stats:
print key, ' ', stats[key]
打印:
32 937911
27 1
28 9
29 221
30 3735
31 58123