程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python-具有大写字母和数字的随机字符串生成大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python-具有大写字母和数字的随机字符串生成?

开发过程中遇到Python-具有大写字母和数字的随机字符串生成的问题如何解决?下面主要结合日常开发的经验,给出你关于Python-具有大写字母和数字的随机字符串生成的解决方法建议,希望对你解决Python-具有大写字母和数字的随机字符串生成有所启发或帮助;

一行回答:

''.join(random.choice(String.ascii_uppercase + String.digits) for _ in range(N))

甚至更短,从Python 3.6开始,使用random.choices()

''.join(random.choices(String.ascii_uppercase + String.digits, k=N))

加密更安全的版本;参见https://stackoverflow.com/a/23728630/2213647

''.join(random.SystemRandom().choice(String.ascii_uppercase + String.digits) for _ in range(N))

详细而言,具有清除函数以进一步重用:

>>> import String
>>> import random
>>> def ID_generator(size=6, chars=String.ascii_uppercase + String.digits):
...    return ''.join(random.choice(chars) for _ in range(sizE))
...
>>> ID_generator()
'G5G74W'
>>> ID_generator(3, "6793YUIO")
'Y3U'

它是如何工作的 ?

我们导入String,一个包含常见ASCII字符序列的模块,以及random一个处理随机生成的模块。

String.ascii_uppercase + String.digits 只是串联表示大写ASCII字符和数字的字符列表:

>>> String.ascii_uppercase
'ABCDEFGHIJKLMnopQRstuVWXYZ'
>>> String.digits
'0123456789'
>>> String.ascii_uppercase + String.digits
'ABCDEFGHIJKLMnopQRstuVWXYZ0123456789'

然后,我们使用列表推导来创建“ n”个元素的列表:

`>>> range(4) # range create a List of ‘n’ numbers [0, 1, 2, 3]

在上面的例子中,我们使用[创建列表,但我们不这样做的ID_generator功能,所以Python没有在内存中创建列表,但生成的飞行元素,一个接一个(更多相关信息点击这里)。

elem我们将要求Python创建一个从字符序列中选取的随机字符,而不是创建字符串’n’次:

>>> random.choice("abcde")
'a'
>>> random.choice("abcde")
'd'
>>> random.choice("abcde")
'b'

因此,random.choice(chars) for _ in range(sizE)实际上是在创建一个size字符序列。从chars以下位置随机选择的字符:

>>> [random.choice('abcde') for _ in range(3)]
['a', 'b', 'b']
>>> [random.choice('abcde') for _ in range(3)]
['e', 'b', 'e']
>>> [random.choice('abcde') for _ in range(3)]
['d', 'a', 'c']

然后,我们只将它们与一个空字符串连接起来,以便该序列成为一个字符串:

>>> ''.join(['a', 'b', 'b'])
'abb'
>>> [random.choice('abcde') for _ in range(3)]
['d', 'c', 'b']
>>> ''.join(random.choice('abcde') for _ in range(3))
'dac'

解决方法

我想生成一个大小为N的字符串。

它应该由数字和大写英文字母组成,例如:

  • 6U1S75
  • 4Z4UKK
  • U911K4

大佬总结

以上是大佬教程为你收集整理的Python-具有大写字母和数字的随机字符串生成全部内容,希望文章能够帮你解决Python-具有大写字母和数字的随机字符串生成所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。