如何在python中生成8个不同的随机数?

Mat*_*123 2 python random ascii

我正在尝试编写一个生成 8 个不同随机数并将它们转换为 ASCII 的加密程序。如果可能,我想在 python 中使用“随机”函数,但欢迎其他帮助。

到目前为止,我生成数字的代码是将一个值分配给函数的不同运行random.randint()8 次,问题是这很草率。一个朋友说要使用,random.sample(33, 126, 8)但我无法让它工作。

任何帮助都非常受欢迎。

Pad*_*ham 5

您可以将xrange上限和下限传递 给样本:

from random import sample

print(sample(xrange(33, 126),8))
Run Code Online (Sandbox Code Playgroud)

示例输出:

[49, 107, 83, 44, 34, 84, 111, 69]
Run Code Online (Sandbox Code Playgroud)

或者range对于python3:

 print(sample(range(33, 126),8))
Run Code Online (Sandbox Code Playgroud)

示例输出:

 [72, 70, 76, 85, 71, 116, 95, 96]
Run Code Online (Sandbox Code Playgroud)

这会给你唯一的数字。

如果你想要 8 个变量:

a, b, c, d, e, f, g, h =  sample(range(33, 126), 8)
Run Code Online (Sandbox Code Playgroud)

如果你想要 ascii,你可以map(chr..)

from random import sample

print map(chr,sample(xrange(33, 126), 8))
Run Code Online (Sandbox Code Playgroud)

示例输出:

['Z', 'i', 'v', '$', ')', 'V', 'h', 'q']
Run Code Online (Sandbox Code Playgroud)