如何生成随机字符串

Izz*_*zzy 1 python python-3.x

我正在尝试做一个生成随机字符串的代码,但我刚开始编码所以我不希望代码太复杂.

import random, string
randomthing = random.choice(string)
print(randomthing(10))
Run Code Online (Sandbox Code Playgroud)

但它一直说长度(len)没有定义.我该怎么办?

Ara*_*ndh 14

如果您想生成唯一字符串:

import uuid
print uuid.uuid4() # e3c8a1c3-9965-4356-9072-1002632a96e1
print uuid.uuid4().hex # e3c8a1c39965435690721002632a96e1
Run Code Online (Sandbox Code Playgroud)


Abd*_*tir 5

string模块没有len你可能想尝试这个:

Python2:

rand_str = lambda n: ''.join([random.choice(string.lowercase) for i in xrange(n)])

# Now to generate a random string of length 10
s = rand_str(10)  
Run Code Online (Sandbox Code Playgroud)

Python3:

rand_str = lambda n: ''.join([random.choice(string.ascii_lowercase) for i in xrange(n)])

# Now to generate a random string of length 10
s = rand_str(10)  
Run Code Online (Sandbox Code Playgroud)

random.choice返回单个字符,使用该join函数连接10个这样的字符.

编辑

lambda n : ...创建一个lambda函数,该函数n作为参数.

''.join(sequence)将一个序列连接到一个字符串中,''它们之间带有空字符串(),即它只是将字符连接成单词.
'.'.join(['a','b','c'])例如,返回a.b.c.