【问题标题】:How to generate a 14 digit serial number in python?如何在python中生成一个14位的序列号?
【发布时间】:2020-04-09 10:07:53
【问题描述】:

如何在python中生成14位序列号,其中4位的最后一个将是0001下一个将是0002...... 0011 等等?这就是我希望数字格式为 12101010010001 的方式。下面是格式的细分。

First three digits (121) = Local Govt. ID
4th & 5th digits (01) = Zonal ID
6th & 7th digits (01) = Area ID
8th to 10th digits (001) = CDA No.
Last four digits (0001) Property No.

【问题讨论】:

  • 您的格式有点未指定。与任意 14 位数字相比,这样的数字有哪些限制?
  • 到目前为止您尝试过什么? ["{}{}{}{}{:04d}".format(LGI, ZID, AID, CDA, x) for x in range(1, 10000)] 作为一般情况,或者只是 ["1210101001{:04d}".format(x) for x in range(1, 10000)]
  • @phipsgabler 我希望数字的约束为 14 位长
  • @Andrew 感谢您的回复,这将是一个一般情况,就像您给出的示例一样` ["{}{}{}{}{:04d}".format(LGI, ZID, AID , CDA, x) for x in range(1, 10000)]` 我正在尝试这个
  • tom-karzes 的回答非常适合一般情况

标签: python digits serial-number


【解决方案1】:

我会把它构造成一个字符串:

sn = "{:03}{:02}{:02}{:03}{:04}".format(121, 1, 1, 1, 1)

这为sn 提供了值'12101010010001',将字段补零到所需的宽度。如果要将结果转换为整数(而不是将其保留为字符串),只需使用 int(sn)

【讨论】:

  • 非常感谢@Tom Karzes 这就是我想要的。