在Python中生成一个随机字母

Kud*_*udu 129 python random python-3.x

有没有办法在Python中生成随机字母(如random.randint但字母)?random.randint的范围功能会很好但是有一个只输出随机字母的生成器会比什么都好.

Mar*_*off 217

简单:

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
Run Code Online (Sandbox Code Playgroud)

string.ascii_letters根据当前语言环境返回包含小写字母和大写字母的字符串; 如果这是不可接受的,random.choice可能会做的伎俩.

string.ascii_letters 从序列中返回单个随机元素.

  • 它实际上是string.ascii_lowercase或string.ascii_uppercase. (10认同)
  • 通常,我需要一串randoms,这里是(在`from string import ascii_letters,digits`和`from random import choice`之后):'''.join([choice(ascii_letters + digits)for i in range(32) ])` (8认同)
  • @joaquin string.letters存在于python 2.7.7中. (7认同)

joa*_*uin 70

>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'
Run Code Online (Sandbox Code Playgroud)

  • @TaylorLeese,我知道有三个选项,包括`ascii_letters`,`ascii_uppercase`和`ascii_lowercase`. (2认同)

Saa*_*aad 26

>>>def random_char(y):
       return ''.join(random.choice(string.ascii_letters) for x in range(y))

>>>print (random_char(5))
>>>fxkea
Run Code Online (Sandbox Code Playgroud)

生成y个随机字符

  • 还:`''.join(random.sample(string.ascii_lowercase,5))` (6认同)

Tay*_*ese 21

>>> import random
>>> import string    
>>> random.choice(string.ascii_lowercase)
'b'
Run Code Online (Sandbox Code Playgroud)


rlo*_*tun 11

另一种方式,为了完整性:

>>> chr(random.randrange(97, 97 + 26))
Run Code Online (Sandbox Code Playgroud)

使用ascii'a'为97 的事实,字母表中有26个字母.

  • 这取决于我们谈论的字母表;-) (3认同)

sal*_*hin 9

您可以使用它来获取一个或多个随机字母

import random
import string
random.seed(10)
letters = string.ascii_lowercase
rand_letters = random.choices(letters,k=5) # where k is the number of required rand_letters

print(rand_letters)

['o', 'l', 'p', 'f', 'v']
Run Code Online (Sandbox Code Playgroud)


小智 6

这不使用任何花哨的模块,但工作正常:

    ''.join(chr(random.randrange(65,90)) for i in range(10))
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以列一个清单:

import random
list1=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
b=random.randint(0,7)
print(list1[b])
Run Code Online (Sandbox Code Playgroud)