파이썬에서 임의의 문자를 생성하는 방법이 있습니까 (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])
