如何生成随机字符串

新手上路,请多包涵

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

 import random, string
randomthing = random.choice(string)
print(randomthing(10))

但它一直说长度(len)未定义。我应该怎么办?

原文由 Izzy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 765
2 个回答

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

蟒蛇2:

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

# Now to generate a random string of length 10
s = rand_str(10)

蟒蛇3:

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

# Now to generate a random string of length 10
s = rand_str(10)

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

编辑

lambda n : ... 创建一个以 n 作为参数的 lambda 函数。

''.join(sequence) 将一个序列连接成一个字符串,它们之间有空字符串( '' ),即它只是将字符连接成单词。

'.'.join(['a','b','c']) 例如,将返回 a.b.c

原文由 Abdul Fatir 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 import uuid
print uuid.uuid4() # e3c8a1c3-9965-4356-9072-1002632a96e1
print uuid.uuid4().hex # e3c8a1c39965435690721002632a96e1

原文由 Aravindh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题