我有一个正整数变量,其值可以在0到999之间.然后将该整数传递给软件.
要传入此软件,整数应始终为3位数.但问题是,它应该有尾随零.
例如:
1 should be passed as 100 19 should be passed as 190 255 should be passed as 255
可以通过检查变量的长度并乘以10或100来完成,具体取决于长度.但有没有更好的Python替代方案.这对于值0也不起作用.
(注意:尾随零是因为整数值实际上是一个毫秒值.软件逐位读取值,它总是需要3位数)
你甚至不需要格式化操作符,只需要简单的str
方法.用零来正确地证明:
x.zfill(3)
用零左对齐:
x.ljust(3, '0')
如果当前是这样的话,你需要首先包装x
在str
这个场景中.此时,可能值得使用格式化运算符,因为其他人已经建议在需要调整时直接生成final ,而没有中间.x
int
str
str
我不知道为什么零被砍掉(理想情况下你应该解决问题的根源),但是你可以将数字格式化为字符串然后将它们变回int
s:
numbers = [1, 19, 255] numbers = [int('{:<03}'.format(number)) for number in numbers]
这左对齐每个数字<
,在3
字符宽的字段中填充额外的字符0
.
您可以通过使用ljust
和执行此操作str
,然后将结果转换为int
.
>>> numbers = [1, 19, 255] >>> [int(str(num).ljust(3, '0')) for num in numbers] [100, 190, 255]
更多信息请ljust
访问:https:
//docs.python.org/2/library/stdtypes.html#string-methods