Python-个人识别码

时间:2018-11-21 09:41:06

标签: python keyword generate

我正在尝试编码一个应该有10个数字的个人识别码。看起来像是990830/4197。 前两个数字-年-1999年他出生 后两个数字-月-8月 第三个数字-第3O.8天 最后的4个数字是用这种方式生成的,因此当您将其取整时,整个数字必须除以11,并且不能保留任何数字。例如 99 + 8 + 30 + 4197 = 4334/11 = 394。 该数字始终应为%= 0。 我想问一些关键词,当我想生成正确的数字时可能会对我有帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

我在这里假设您的电话号码中的日期部分已经存在。然后,您可以使用以下代码高效地计算“尾巴”:

from random import randint


date = 990830


s = sum(int(x) * 10**(i % 2) for i, x in enumerate(str(date), 1))  # note 1
tail = randint(90, 908) * 11 - (s % 11)  # note 2

print('{}\{}'.format(date, tail))

产生(几个示例):

990830\5462
990830\5132
990830\8751
990830\6397

它们全部被11整除。


  1. 这只是按照说明添加日期的数字(例如99 + 08 + 30
  2. 这将计算一个随机的4位数字,将其添加到上述总和后将创建一个N的数字N % 11 == 0