Python随机十六进制生成

2024-03-29 10:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

randhex = "\\x" + str(random.choice("123456789ABCDEF")) + str(random.choice("123456789ABCDEF"))

到目前为止,我所想到的只是做不同的=调用(例如randhex1=^^^,randhex2)等等,但这是乏味和低效的,我不想这样做

^{pr2}$

因为这看起来不太好,很难说有多少。在

我想把它分配给这个

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

这显然行不通,因为它们当时都是一样的。任何帮助都会很好。在


Tags: randomflagschoicexffstrpr2flags2randhex
1条回答
网友
1楼 · 发布于 2024-03-29 10:56:30

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

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)

样品结果:

^{pr2}$

为了方便起见,请将size参数添加到randhex中,这样您就不必在每个赋值中多次调用它:

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)

相关问题 更多 >