Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中创建一个六进制随机数?_Python_Random - Fatal编程技术网

如何在python中创建一个六进制随机数?

如何在python中创建一个六进制随机数?,python,random,Python,Random,我想创建一个十六进制数的文件,其中每个人都由32个元素组成,如下所示: ccddeeff8899aabb4455667fffffff33 e0370734313198a2885a308aaaaaaaa8 7354776f204f6e65204e696bbbbbbb6f 64976fbb4f6e6ee0cc681e6ccccccc77 我尝试使用此代码创建数字,但现在不知道如何为每个数字指定32个元素: import random Plaintext_file = open("C:\

我想创建一个十六进制数的文件,其中每个人都由32个元素组成,如下所示:

ccddeeff8899aabb4455667fffffff33
e0370734313198a2885a308aaaaaaaa8
7354776f204f6e65204e696bbbbbbb6f
64976fbb4f6e6ee0cc681e6ccccccc77
我尝试使用此代码创建数字,但现在不知道如何为每个数字指定32个元素:

   import random
   Plaintext_file = open("C:\\Users\\user\\Plaintexts.txt", "w")
   for i in range(5):
      i = random.randint(0, 16777215)
      print "%x" % i 
      Plaintext_file.write("%x \n" % i)
我得到的结果是:

c39ea9
a737a0
d2d352
fcebf1
ade761
如果你能帮忙,我将非常感激

用于将二进制数据转换为ASCII字符行

>>> import uuid
>>> uuid.uuid4().hex
'd734fde6d45e47e99d06f129b5c128f8'
>>> import os,binascii
>>> binascii.b2a_hex(os.urandom(16))
'a8922d48fba3bddd0214a338ce090ea6'
从操作系统特定的随机性源返回一个由
n
随机字节组成的字符串。

用于将二进制数据转换为一行ASCII字符

>>> import os,binascii
>>> binascii.b2a_hex(os.urandom(16))
'a8922d48fba3bddd0214a338ce090ea6'

从操作系统特定的随机性源返回一个由
n
随机字节组成的字符串。

您可以使用
random。使用接受的十六进制字符列表(从
string.hexdigits
)选择

如果只需要小写字母,请使用
string.hexdigits[:16]

>>> import string
>>> string.hexdigits[:16]
'0123456789abcdef'
>>> import random
>>> "".join([random.choice(string.hexdigits[:16]) for x in range(32)])
'805cb6c9b38515b588bfec42613eff9d'

您可以使用接受的十六进制字符列表(从
string.hexdigits
)使用
random.choice

如果只需要小写字母,请使用
string.hexdigits[:16]

>>> import string
>>> string.hexdigits[:16]
'0123456789abcdef'
>>> import random
>>> "".join([random.choice(string.hexdigits[:16]) for x in range(32)])
'805cb6c9b38515b588bfec42613eff9d'

16777215来自哪里?它不是16**32。i=random。randint(0,16**32)不给我32个元素,有时它给我31个元素,因为第一个数字是时间的0 1/16。(使用
“%032x”
强制宽度为32,填充为零)。不,对不起,它不起作用。我仍然有同样的问题16777215来自哪里?它不是16**32。i=random。randint(0,16**32)不给我32个元素,有时它给我31个元素,因为第一个数字是时间的0 1/16。(使用
“%032x”
强制宽度为32,零填充)。不,我很抱歉,它不起作用。我仍然有相同的问题。它起作用,但我需要返回到纯文本文件行。写入(“\n”%I)这个文件不起作用。写入(“%s\n”%uuid.uuid4().hex)它起作用,但我需要返回到纯文本文件行。写入(“\n”%I)这一个不工作于INTEXT_文件。写入(“%s\n”%uuid.uuid4().hex)@nani92,您检查过这段代码吗?我不太确定到底是什么/哪里出了问题。使用“0123456789ABCDEFABCDDEF”会增加选择a..f范围内十六进制数字的几率。如果结果中的大小写很重要,则最好使用“01234567890123456789ABCDEFABCDDEF”。@nani92,您是否检查了此代码?我不太确定到底是什么/哪里出了问题。使用“0123456789ABCDEFABCDDEF”会增加选择a..f范围内十六进制数字的几率。如果结果中的大小写重要,则最好使用“01234567890123456789ABCDEFABCDDEF”。