对不起,如果这是一个有点新手的问题。但是继续…
假设在代码的开头设置了一个变量,像这样:
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