Czy istnieje sposób na generowanie losowych liter w Pythonie (jak random.randint, ale dla liter)? Funkcjonalność zakresu random.randint byłaby fajna, ale posiadanie generatora, który po prostu wyświetla losową literę, byłoby lepsze niż nic.
python
random
python-3.x
Kudu
źródło
źródło
from string import ascii_letters, digits
ifrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
źródło
ascii_letters
,ascii_uppercase
orazascii_lowercase
.wygenerować y liczbę losowych znaków
źródło
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
zwraca unikalnego zestawu wartości z danych wejściowych, co nie jest tym samym, corandom.choice()
?random.choice
irandom.randint
zwracają pojedynczą wartość. Możesz również użyć,numpy.random.choice
aby nadać unikalny zestaw, jeśli dodasz replace = False, na przykład:numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
źródło
Inny sposób, aby uzyskać kompletność:
Wykorzystaj fakt, że
ascii
„a” to 97, aw alfabecie jest 26 liter.Określając górną i dolną granicę
random.randrange()
wywołania funkcji, należy pamiętać, żerandom.randrange()
jest ona wyłączna w jej górnej granicy, co oznacza, że generuje tylko liczbę całkowitą do 1 jednostki mniejszą od podanej wartości.źródło
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
jest wyłączny w swojej górnej granicy, co oznacza, że aby uzyskać cały zakres znaków97 - 122
, przekazany argument musi być123
.97 + 26
jest używany.Możesz użyć tego, aby otrzymać jedną lub więcej losowych liter
źródło
random.choices
?help(random.choices)
stwierdza,If the relative weights or cumulative weights are not specified, the selections are made with equal probability.
że oznaczałoby to, że dystrybucja jest dyskretną jednolitą dystrybucją ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Możesz po prostu zrobić listę:
źródło
źródło
źródło
źródło
Możesz użyć
źródło
Możesz otrzymać losowe ciągi w ten sposób:
źródło
string.ascii_letters
2. Możesz zapisać składane listy używająckeylist = random.choices(base_str(), k=KEY_LEN)
3. Dlaczego miećbase_str
jako funkcję, a niebase_str = string.ascii_letters+string.digits
?źródło
Wszystkie poprzednie odpowiedzi są poprawne, jeśli szukasz losowych znaków różnych typów (tj. Znaków alfanumerycznych i specjalnych), oto skrypt, który stworzyłem, aby zademonstrować różne typy tworzenia funkcji losowych, ma trzy funkcje, jedną dla liczb, alfanumeryczną. znaki i znaki specjalne. Skrypt po prostu generuje hasła i jest tylko przykładem pokazującym różne sposoby generowania losowych znaków.
Wynik:
źródło
cóż, to jest moja odpowiedź! To dobrze działa. Po prostu wpisz liczbę losowych liter, które chcesz w `` liczbie '' ... (Python 3)
źródło
źródło
Mój zbyt skomplikowany fragment kodu:
Zasadniczo generuje losową liczbę z 26, a następnie konwertuje na odpowiednią literę. Można by to zdecydowanie poprawić, ale jestem dopiero początkującym i jestem dumny z tego fragmentu kodu.
źródło
print(chr(96 + letter))
, nieif
-elif
piekło jest potrzebneMoże to ci pomoże:
źródło
@AAADCCEHFGJLDJF@EHFMHKWUR
Umieść pythona na klawiaturze i pozwól mu przewijać litery, aż znajdziesz preferowaną losową kombinację. Żartuję!
źródło