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



对不起,如果这是一个有点新手的问题。但是继续…

假设在代码的开头设置了一个变量,像这样:

TestVar = 'A6'

但是后来我想把它打印成000000A6

或者说是

TestVar = 'C30'

我希望它打印为00000C30

基本上总是返回长度为8的

这样做的原因是我已经制作了一个通用的脚本,用于修改游戏,(我可以链接,如果问),你需要把某些值,我想有格式自动方便使用。例如,在运行时,它会打印

Item ID Here: 

如果你把166它会将十进制数转换为十六进制,这将是A6,然而,为了可用于所有值(不只是那些是2位数一旦转换)我试图让它检测它的长度和格式与0之前。

对不起,如果这没有意义,用一种更简单的方式说,有没有一种方法来检测变量的长度?例如在pseudo

TestVar = 'C30'
If TestVar length = 3
print('00000'+TestVar)
Print Result: 00000C30

基本上总是返回长度为8的

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

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

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

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

参见文档:

  • for f-strings (f'I am an f-string'语法);

  • 用于格式化语法(>08s>08X的东西)。

使用字符串函数rjust():

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

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

例如:

s = 'C30'
s.zfill(8)
>>> '00000C30'

试试这个代码

txt ="A6"
x = txt.zfill (8)
打印(x)

可以使用string。zfill方法

例如。

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

这个方法用0填充作为参数传递的位数

试试str.rjust()函数

i = 1111
pad = '0'
n = 8
x = str(i).rjust(n, pad)
print(x)    # 00001111

最新更新