在 Python 中生成长度为 N 的随机字符串

在 Python 中生成长度为 N 的随机字符串

Generate a random string of length N in Python

要生成长度为 N 的随机字符串:

  1. 使用该string模块获取 ASCII 字符的字符串。
  2. 使用该random.choice()方法从字符串中获取 N 个随机字符。
  3. 使用该str.join()方法将可迭代对象连接成一个字符串。
主程序
import string import random # ✅ Generate a random string of length N of Lowercase letters lowercase_only = ''.join( random.choice(string.ascii_lowercase) for _ in range(5) ) print(lowercase_only) # 👉️ koahf # ----------------------------------------- # ✅ Generate a random string of length N of Uppercase letters uppercase_only = ''.join( random.choice(string.ascii_uppercase) for _ in range(5) ) print(uppercase_only) # 👉️ TNYAD # ----------------------------------------- # ✅ Generate a random string of length N of Lowercase and Uppercase letters lowercase_and_uppercase = ''.join( random.choice(string.ascii_letters) for _ in range(5) ) print(lowercase_and_uppercase) # 👉️ xJyNJ

第一个示例生成一个长度为 N 的随机字符串,其中包含 ASCII 小写字母。

主程序
import string import random lowercase_only = ''.join( random.choice(string.ascii_lowercase) for _ in range(5) ) print(lowercase_only) # 👉️ axfkd

我们使用该string模块获取包含 ASCII 字母的字符串。

主程序
import string # abcdefghijklmnopqrstuvwxyz print(string.ascii_lowercase) # ABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.ascii_uppercase) # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.ascii_letters)

ascii_lowercase属性返回一个包含小写 ASCII 字母的字符串。

ascii_uppercase如果您需要获取包含大写 ASCII 字母的ascii_letters字符串或获取包含两者的字符串,则可以使用该属性。

random.choice方法接受
一个序列并从非空序列返回一个随机元素。

主程序
import string import random print(random.choice(string.ascii_lowercase)) # 👉️ y print(random.choice(string.ascii_lowercase)) # 👉️ j print(random.choice(string.ascii_lowercase)) # 👉️ z

最后一步是使用该str.join()方法将可迭代对象连接成一个字符串。

主程序
import string import random uppercase_only = ''.join( random.choice(string.ascii_uppercase) for _ in range(5) ) print(uppercase_only) # 👉️ TNYAD

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

我们使用一个空字符串将可迭代对象的元素连接成一个没有分隔符的字符串。

要获得包含小写和大写 ASCII 字母的长度为 N 的随机字符串,请使用该string.ascii_letters属性。

主程序
import string import random lowercase_and_uppercase = ''.join( random.choice(string.ascii_letters) for _ in range(5) ) print(lowercase_and_uppercase) # 👉️ xJyNJ

string.digits如果需要获取长度为 N 且包含数字的随机字符串,则可以使用该属性。

主程序
import string import random digits = ''.join( random.choice(string.digits) for _ in range(5) ) print(digits) # 👉️ 71438

string.digits属性返回一个字符串,其中包含从0
的数字
9

主程序
import string import random print(string.digits) # 👉️ 0123456789

我们使用range()该类在示例中构造了一个可迭代对象。

该类range()采用以下参数:

姓名 描述
start 表示范围开始的整数(默认为0
stop 向上,但不包括提供的整数
step 范围将由每 N 个数字组成,从startstop(默认为1

如果您只将单个参数传递给range()构造函数,则它被认为是stop参数的值。

主程序
for n in range(5): print(n) # 👉️ 0 1 2 3 4 result = list(range(5)) # 👇️ [0, 1, 2, 3, 4] print(result)