Antworten:
Einfach:
>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
string.ascii_letters
Gibt eine Zeichenfolge zurück, die die Klein- und Großbuchstaben entsprechend dem aktuellen Gebietsschema enthält.
random.choice
Gibt ein einzelnes zufälliges Element aus einer Sequenz zurück.
from string import ascii_letters, digits
und from random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'
ascii_letters
, ascii_uppercase
und ascii_lowercase
.
>>>def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
>>>print (random_char(5))
>>>fxkea
um y Anzahl von zufälligen Zeichen zu erzeugen
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
eine Rückkehr einzigartigen Satz von Werten aus dem Eingang, der als nicht das gleiche ist random.choice()
?
random.choice
und random.randint
geben einen einzelnen Wert zurück. Sie können auch verwenden numpy.random.choice
, um einen eindeutigen Satz zu geben, wenn Sie replace = False hinzufügen, wie numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
>>> import random
>>> import string
>>> random.choice(string.ascii_lowercase)
'b'
Ein anderer Weg der Vollständigkeit halber:
>>> chr(random.randrange(97, 97 + 26))
Verwenden Sie die Tatsache, dass ascii
'a' 97 ist und das Alphabet 26 Buchstaben enthält.
Denken Sie bei der Bestimmung der Ober- und Untergrenze des random.randrange()
Funktionsaufrufs daran, dass diese random.randrange()
ausschließlich an der Obergrenze liegt. Dies bedeutet, dass immer nur eine Ganzzahl generiert wird, die bis zu 1 Einheit unter dem angegebenen Wert liegt.
chr(random.randrange(97, 97 + 26 - 1))
?
chr(random.randrange(97, 97 + 26)
. random.randrange()
ist an seiner oberen Grenze exklusiv, was bedeutet, dass 97 - 122
das übergebene Argument sein muss , um den gesamten Zeichenbereich zu erhalten 123
.
97 + 26
verwendet wird.
Sie können dies verwenden, um einen oder mehrere zufällige Buchstaben zu erhalten.
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']
random.choices
?
help(random.choices)
besagt If the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Dies würde bedeuten, dass die Verteilung die diskrete gleichmäßige Verteilung ist ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).
def randchar(a, b):
return chr(random.randint(ord(a), ord(b)))
import random
def Random_Alpha():
l = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
return l[random.randint(0,25)]
print(Random_Alpha())
Sie können verwenden
map(lambda a : chr(a), np.random.randint(low=65, high=90, size=4))
import string
import random
KEY_LEN = 20
def base_str():
return (string.letters+string.digits)
def key_gen():
keylist = [random.choice(base_str()) for i in range(KEY_LEN)]
return ("".join(keylist))
Sie können zufällige Zeichenfolgen wie folgt erhalten:
g9CtUljUWD9wtk1z07iF
ndPbI1DDn6UvHSQoDMtd
klMFY3pTYNVWsNJ6cs34
Qgr7OEalfhXllcFDGh2l
string.ascii_letters
2. Sie können das Listenverständnis speichern, indem Sie keylist = random.choices(base_str(), k=KEY_LEN)
3. Warum base_str
als Funktion und nicht als base_str = string.ascii_letters+string.digits
?
def create_key(key_len):
key = ''
valid_characters_list = string.letters + string.digits
for i in range(key_len):
character = choice(valid_characters_list)
key = key + character
return key
def create_key_list(key_num):
keys = []
for i in range(key_num):
key = create_key(key_len)
if key not in keys:
keys.append(key)
return keys
Alle vorherigen Antworten sind korrekt. Wenn Sie nach zufälligen Zeichen verschiedener Typen (z. B. alphanumerische Zeichen und Sonderzeichen) suchen, ist hier ein Skript, das ich erstellt habe, um verschiedene Arten der Erstellung zufälliger Funktionen zu demonstrieren. Es hat drei Funktionen, eine für Zahlen, Alpha- Zeichen und Sonderzeichen. Das Skript generiert einfach Passwörter und ist nur ein Beispiel, um verschiedene Möglichkeiten zum Generieren von zufälligen Zeichen zu demonstrieren.
import string
import random
import sys
#make sure it's 3.7 or above
print(sys.version)
def create_str(str_length):
return random.sample(string.ascii_letters, str_length)
def create_num(num_length):
digits = []
for i in range(num_length):
digits.append(str(random.randint(1, 100)))
return digits
def create_special_chars(special_length):
stringSpecial = []
for i in range(special_length):
stringSpecial.append(random.choice('!$%&()*+,-.:;<=>?@[]^_`{|}~'))
return stringSpecial
print("how many characters would you like to use ? (DO NOT USE LESS THAN 8)")
str_cnt = input()
print("how many digits would you like to use ? (DO NOT USE LESS THAN 2)")
num_cnt = input()
print("how many special characters would you like to use ? (DO NOT USE LESS THAN 1)")
s_chars_cnt = input()
password_values = create_str(int(str_cnt)) +create_num(int(num_cnt)) + create_special_chars(int(s_chars_cnt))
#shuffle/mix the values
random.shuffle(password_values)
print("generated password is: ")
print(''.join(password_values))
Ergebnis:
Nun, das ist meine Antwort! Es funktioniert gut. Geben Sie einfach die Anzahl der gewünschten zufälligen Buchstaben in 'number' ein ... (Python 3)
import random
def key_gen():
keylist = random.choice('abcdefghijklmnopqrstuvwxyz')
return keylist
number = 0
list_item = ''
while number < 20:
number = number + 1
list_item = list_item + key_gen()
print(list_item)
import string
import random
def random_char(y):
return ''.join(random.choice(string.ascii_letters+string.digits+li) for x in range(y))
no=int(input("Enter the number of character for your password= "))
li = random.choice('!@#$%^*&( )_+}{')
print(random_char(no)+li)
Mein übermäßig komplizierter Code:
import random
letter = (random.randint(1,26))
if letter == 1:
print ('a')
elif letter == 2:
print ('b')
elif letter == 3:
print ('c')
elif letter == 4:
print ('d')
elif letter == 5:
print ('e')
elif letter == 6:
print ('f')
elif letter == 7:
print ('g')
elif letter == 8:
print ('h')
elif letter == 9:
print ('i')
elif letter == 10:
print ('j')
elif letter == 11:
print ('k')
elif letter == 12:
print ('l')
elif letter == 13:
print ('m')
elif letter == 14:
print ('n')
elif letter == 15:
print ('o')
elif letter == 16:
print ('p')
elif letter == 17:
print ('q')
elif letter == 18:
print ('r')
elif letter == 19:
print ('s')
elif letter == 20:
print ('t')
elif letter == 21:
print ('u')
elif letter == 22:
print ('v')
elif letter == 23:
print ('w')
elif letter == 24:
print ('x')
elif letter == 25:
print ('y')
elif letter == 26:
print ('z')
Es generiert im Grunde eine Zufallszahl aus 26 und wandelt sie dann in den entsprechenden Buchstaben um. Dies könnte trotzig verbessert werden, aber ich bin nur ein Anfänger und ich bin stolz auf diesen Code.
print(chr(96 + letter))
, nein if
- elif
Hölle wird benötigt
Vielleicht kann Ihnen das helfen:
import random
for a in range(64,90):
h = random.randint(64, a)
e += chr(h)
print e
@AAADCCEHFGJLDJF@EHFMHKWUR
Legen Sie eine Python auf die Tastatur und lassen Sie ihn über die Buchstaben rollen, bis Sie Ihre bevorzugte zufällige Kombination finden. Nur ein Scherz!
import string #This was a design above but failed to print. I remodled it.
import random
irandom = random.choice(string.ascii_letters)
print irandom