Python-个人识别号

Python-个人识别号,python,keyword,generate,Python,Keyword,Generate,我想给一个应该有10个号码的个人身份号码编码。看起来像是990830/4197。 前两个数字——1999年——他出生 第二个两个数字-月份-8月 第三个两个数字-第3O.8天 最后4个数字是这样生成的,所以当你取整数时,它必须除以11,并且不能保留任何数字。比如说,; 99+8+30+4197= 4 334 /11 = 394. 数字始终应为%=0。 我想问一些关键词,当我想要生成正确的数字时,它们可能会帮助我。 谢谢我在这里假设您已经拥有的号码中的日期部分。然后您可以使用此代码高效地计算“尾

我想给一个应该有10个号码的个人身份号码编码。看起来像是990830/4197。 前两个数字——1999年——他出生 第二个两个数字-月份-8月 第三个两个数字-第3O.8天 最后4个数字是这样生成的,所以当你取整数时,它必须除以11,并且不能保留任何数字。比如说,; 99+8+30+4197= 4 334 /11 = 394. 数字始终应为%=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))
产生(几个例子):

它们都可以被11整除


  • 这只需添加所述日期的编号(例如,
    99+08+30
  • 这将计算一个随机的4位数字,当添加到上述总和时,将创建一个数字
    N
    ,其
    N%11==0

  • 欢迎来到SO。我真的不明白这里的问题是什么。“想问一些关键词”并不具体。你能展示一下你做了什么,你面临什么问题吗?看看代码对我们来说总是很有用的。另外,如果知道你自己已经尝试过一些东西,并询问我们你可能做得不正确或错过了什么,感觉会更好。另外,制定一个清晰明确的问题,如果你的标题中没有这个问题,你也可以突出这个问题。
    990830\5462
    990830\5132
    990830\8751
    990830\6397