Python随机十六进制生成器

Python随机十六进制生成器,python,python-2.7,random,hex,smb,Python,Python 2.7,Random,Hex,Smb,所以我希望每次调用它时都能生成一个随机的十六进制值 randhex = "\\x" + str(random.choice("123456789ABCDEF")) + str(random.choice("123456789ABCDEF")) 到目前为止,我所想到的只是进行不同的=调用(例如randhex1=^^,randhex2)等等,但这既单调又低效,我不想这样做 ErrorClass = "\\x" + str(random.choice("123456789ABCDEF")) + "\

所以我希望每次调用它时都能生成一个随机的十六进制值

randhex = "\\x" + str(random.choice("123456789ABCDEF")) + str(random.choice("123456789ABCDEF"))
到目前为止,我所想到的只是进行不同的=调用(例如randhex1=^^,randhex2)等等,但这既单调又低效,我不想这样做

ErrorClass = "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF"))
因为这看起来不太好,而且很难说有多少

我想把它分配给这个

ErrorClass = randhex1 + randhex2 + randhex3 + randhex4,
Flags = randhex5,
Flags2 = randhex6 + randhex7,
PIDHigh = randhex2 + randhex5,
理想情况下,不必分配不同的数字,我希望所有的数字都是统一的,或者像ErrorClass=randhex*4这样的东西,这将是干净的。但是,如果我这样做,它只会将代码复制为如下内容:

Input: ErrorClass = randhex + randhex + randhex + randhex
Output: \xFF\xFF\xFF\xFF

这显然不起作用,因为它们都是一样的。任何帮助都很好。

创建一个函数,返回随机生成的字符串。每次调用它时,它都会给您一个新值

import random

def randhex():
    return "\\x" + str(random.choice("0123456789ABCDEF")) + str(random.choice("0123456789ABCDEF"))

ErrorClass = randhex() + randhex() + randhex() + randhex()
Flags = randhex()
Flags2 = randhex() + randhex()
PIDHigh = randhex() + randhex()

print(ErrorClass)
print(Flags)
print(Flags2)
print(PIDHigh)
样本结果:

\xBF\x2D\xA2\xC2
\x74
\x55\x34
\xB6\xF5
为方便起见,请在
randhex
中添加
size
参数,这样您就不必在每次分配中多次调用它:

import random

def randhex(size=1):
    result = []
    for i in range(size):
        result.append("\\x" + str(random.choice("0123456789ABCDEF")) + str(random.choice("0123456789ABCDEF")))
    return "".join(result)

ErrorClass = randhex(4)
Flags = randhex()
Flags2 = randhex(2)
PIDHigh = randhex(2)

print(ErrorClass)
print(Flags)
print(Flags2)
print(PIDHigh)

您是否故意跳过了
0
?因为它使你的数字非常不一致。@Błotosmętek这是故意的。我不喜欢从0开始的想法,这是我个人的偏好。工作起来很有魅力。非常感谢。