python - 如何格式化 Python 代码以始终返回此特定长度

对不起,如果这是一个菜鸟问题。但是继续..

假设在我的代码开头我设置了一个变量,如下所示:

TestVar = 'A6'

但我后来希望它打印为 000000A6

或者说是

TestVar = 'C30'

我希望它打印为 00000C30

基本上总是以 8 的长度返回它

这样做的原因是我已经制作了一个用于修改游戏的通用脚本(如果有要求,我可以链接)并且您需要输入某些 values 我希望自动格式化以方便使用。例如在运行时它会打印

Item ID Here:

如果你输入 166,它会将十进制数转换为十六进制数,即 A6,但是为了对所有 values 都可用(不仅仅是转换后为 2 位的数字),我试图让它检测到它是长度并用之前的 0 格式化。

抱歉,如果这没有意义,用更简单的方式来说,有没有办法检测变量的长度?所以例如在伪

TestVar = 'C30'

    If TestVar length = 3
         print('00000'+TestVar)

Print Result: 00000C30

回答1

基本上总是以 8 的长度返回它

这就是格式字符串的作用:

>>> print(f"{'C30':>08s}")
00000C30

作为旁注,将任何数字输出为 8 位十六进制:

>>> print(f"{100:>08X}")
00000064
>>> print(f"{1024:>08X}")
00000400

请参阅文档:

回答2

使用字符串函数 rjust():

print(test.rjust(8,'0'))

回答3

可以使用 .zfill 字符串方法。

例如:

s = 'C30'
s.zfill(8)

>>> '00000C30'

回答4

试试这个代码

txt = "A6"

x = txt.zfill(8)

print(x)

回答5

您可以使用 string.zfill 方法

例如。

code = '3C0'
filledCode = code.zfill(8)

这个方法用零填充你像参数一样传递的位数

回答6

尝试类似这样的 str.rjust() 函数

i = 1111
pad = '0'
n = 8

x = str(i).rjust(n, pad)
print(x)    # 00001111

相似文章