生成一个随机长度为 12 的字符串,由大小写字母和数字组成
Generate a random length is 12 string that is comprised uppercase and lowercase alpha and numbers
如何创建 Python 算法来生成由唯一的大小写字母和数字组成的 12 字符字符串?
在我的情况下,它将用作唯一的 session/key 标识符,可能 在 500K+ 代中是唯一的。
例如:
837uNNM9abCb
9HFRHcop24Cd
谢谢!
这可以使用 while 循环和 Python 的 random
和 string
库轻松实现。
代码:
import random
import string
def create():
_string, counter = "", 0
while counter < 12:
choice = random.choice(string.ascii_letters + string.digits)
if choice not in _string:
_string += choice
counter += 1
else:
pass
return _string
print(create())
输出:
YWdTocQs0R4X
它在做什么:
- 正在创建变量
_string
和 counter
。
- 开始一个 while 循环,在条件
counter < 12
变为假后中断。(这里有一个在 for
循环之上使用 while
循环的原因,我稍后会解释)
- 使用Python的随机库找到一个随机的number/letter(大写和小写)。
- 检查选项是否已在字符串中,如果不是,则将选项添加到字符串中。但如果是,则什么也不会发生,循环会重新开始(为什么我在
for
循环上使用 while
循环。
- Returns字符串!
注意:如果您对字符串中的重复项没问题,那么这个单行代码的工作效率会高得多。
print(''.join(random.choice(string.letters + string.digits) for _ in range(12)))
如何创建 Python 算法来生成由唯一的大小写字母和数字组成的 12 字符字符串?
在我的情况下,它将用作唯一的 session/key 标识符,可能 在 500K+ 代中是唯一的。
例如:
837uNNM9abCb
9HFRHcop24Cd
谢谢!
这可以使用 while 循环和 Python 的 random
和 string
库轻松实现。
代码:
import random
import string
def create():
_string, counter = "", 0
while counter < 12:
choice = random.choice(string.ascii_letters + string.digits)
if choice not in _string:
_string += choice
counter += 1
else:
pass
return _string
print(create())
输出:
YWdTocQs0R4X
它在做什么:
- 正在创建变量
_string
和counter
。 - 开始一个 while 循环,在条件
counter < 12
变为假后中断。(这里有一个在for
循环之上使用while
循环的原因,我稍后会解释) - 使用Python的随机库找到一个随机的number/letter(大写和小写)。
- 检查选项是否已在字符串中,如果不是,则将选项添加到字符串中。但如果是,则什么也不会发生,循环会重新开始(为什么我在
for
循环上使用while
循环。 - Returns字符串!
注意:如果您对字符串中的重复项没问题,那么这个单行代码的工作效率会高得多。
print(''.join(random.choice(string.letters + string.digits) for _ in range(12)))