对不起,如果这是一个菜鸟问题。但是继续..
假设在我的代码开头我设置了一个变量,如下所示:
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
请参阅文档:
for https://docs.python.org/3/tutorial/inputoutput.html#tut-f-strings(
f'I am an f-string'
语法);for https://docs.python.org/3/library/string.html#formatspec(
>08s
和>08X
的东西)。
回答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