在 Python 中生成随机的 6 位 ID

Kha*_*yen 3 python random

我有一个问题数据库。我想用6 位 ID标记它们。

我曾尝试使用uuid.uuid1()withint()但它生成一个 128 位整数,而且太长了。

我也尝试过使用,random()但该随机整数不能将数字“0”作为第一位数字。

身份证:

  • 可以以数字“0”开头。
  • 前 3 位数字和后 3 位数字之间有一个空格。
  • 必须是唯一的(随机 ID)。

例如,问题 1 可以标记为050 124

我怎样才能创建这样的随机 ID?

实际上,前 3 位数字和后 3 位数字之间的空格并不重要。所以,如果这很难,请教我如何创建一个随机的 6 位数字(可以以“0”开头)

Pav*_*rev 7

这个oneliner可以解决问题:

import random

random_id = ' '.join([str(random.randint(0, 999)).zfill(3) for _ in range(2)])
Run Code Online (Sandbox Code Playgroud)

但是要实现唯一性,需要了解有关如何对其进行检查的详细信息。例如,如果您使用原始 SQL 将其写入数据库,则需要先检查,例如SELECT id FROM my_table WHERE id=%s%s生成 id 的位置。如果已经存在,则需要重新生成。基本上你做这样的事情:

while True:
    uid = ' '.join([str(random.randint(0, 999)).zfill(3) for _ in range(2)])
    if uid_exists(uid):  # Your function to check if it already exist
        continue
    write_your_record(uid)  # Do something next if not
Run Code Online (Sandbox Code Playgroud)