如何解决如何打印包含前导零的ID号?
我正在编写一个Iterator类,该类生成所有可能的ID号。 问题是我需要它打印所有9位数字,包括以0开头的数字,例如:000000001 000000002等。
我需要输出为数字而不是字符串,有办法吗?
我的代码:
class IDIterator:
def __init__(self):
self._id = range(000000000,1000000000)
self._next_id = 000000000
def __iter__(self):
return self
def __next__(self):
self._next_id += 1
if self._next_id == 999999999:
raise StopIteration
return self._next_id
ID = iter(IDIterator())
print(next(ID))
print(next(ID))
print(next(ID))
输出= 1 2 3 ..
解决方法
Python具有内置的字符串函数,该函数将执行零的左填充
>>> before = 1
>>> after = str(before).zfill(9)
000000001
>>> type(after)
<class 'str'>
如果您需要以整数形式返回的ID,且保留前导零,那么我不认为有一种方法可以满足您的需求-原始的Python类型根本不支持这种类型的表示形式。另一种策略是在需要向用户显示内容时,将ID存储为普通整数,并以前导零表示格式。
def format_id(string,length=9):
return str(string).zfill(length)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。