[python] 파이썬에서 임의의 문자를 생성

파이썬에서 임의의 문자를 생성하는 방법이 있습니까 (random.randint와 같지만 문자의 경우)? random.randint의 범위 기능은 훌륭하지만 임의의 문자를 출력하는 생성기가 있으면 아무것도 아닌 것보다 낫습니다.



답변

단순한:

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'

string.ascii_letters 현재 로케일에 따라 소문자와 대문자를 포함하는 문자열을 리턴합니다.

random.choice 시퀀스에서 임의의 단일 요소를 반환합니다.


답변

>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'


답변

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

>>>print (random_char(5))
>>>fxkea

y 개의 임의의 문자를 생성


답변

>>> import random
>>> import string
>>> random.choice(string.ascii_lowercase)
'b'


답변

완전성을위한 또 다른 방법 :

>>> chr(random.randrange(97, 97 + 26))

ascii‘a’는 97이며 알파벳에는 26 개의 글자가 있다는 사실을 사용하십시오 .

random.randrange()함수 호출 의 상한과 하한을 결정할 때 상한에서 random.randrange()배타적 임을 명심하십시오 . 즉, 제공된 값보다 1 단위 적은 정수만 생성합니다.


답변

이것을 사용하여 하나 이상의 임의의 문자를 얻을 수 있습니다

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']


답변

당신은 목록을 만들 수 있습니다 :

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