Is er een manier om willekeurige letters in Python te genereren (zoals random.randint maar voor letters)? De bereikfunctionaliteit van random.randint zou leuk zijn, maar het hebben van een generator die alleen een willekeurige letter uitvoert, zou beter zijn dan niets.
Antwoord 1, autoriteit 100%
Eenvoudig:
>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
string.ascii_letters
geeft een tekenreeks terug die de kleine letters en hoofdletters bevat volgens de huidige landinstelling.
random.choice
geeft een enkel, willekeurig element uit een reeks.
Antwoord 2, autoriteit 27%
>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'
Antwoord 3, autoriteit 14%
>>>def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
>>>print (random_char(5))
>>>fxkea
om y aantal willekeurige tekens te genereren
Antwoord 4, autoriteit 8%
>>> import random
>>> import string
>>> random.choice(string.ascii_lowercase)
'b'
Antwoord 5, autoriteit 5%
een andere manier, voor volledigheid:
>>> chr(random.randrange(97, 97 + 26))
Gebruik het feit dat ascii
‘A’ 97 is, en er zijn 26 letters in het alfabet.
Bij het bepalen van de bovenste en onderkant van de random.randrange()
functie-oproep, onthoud dat random.randrange()
is exclusief op de bovengrens, wat betekent dat zal alleen maar een geheel getal genereren tot 1 eenheid minder dat de verstrekte waarde.
Antwoord 6, Autoriteit 3%
U kunt dit gebruiken om een of meer willekeurige letter (s)
te krijgen
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']
Antwoord 7, Autoriteit 2%
U kunt gewoon een lijst maken:
import random
list1=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
b=random.randint(0,7)
print(list1[b])
Antwoord 8
def randchar(a, b):
return chr(random.randint(ord(a), ord(b)))
Antwoord 9
import random
def guess_letter():
return random.choice('abcdefghijklmnopqrstuvwxyz')
Antwoord 10
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())
Antwoord 11
U kunt gebruiken
map(lambda a : chr(a), np.random.randint(low=65, high=90, size=4))
Antwoord 12
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))
Je kunt als volgt willekeurige strings krijgen:
g9CtUljUWD9wtk1z07iF
ndPbI1DDn6UvHSQoDMtd
klMFY3pTYNVWsNJ6cs34
Qgr7OEalfhXllcFDGh2l
Antwoord 13
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
Antwoord 14
Alle eerdere antwoorden zijn correct, als u op zoek bent naar willekeurige tekens van verschillende typen (dwz alfanumerieke en speciale tekens), dan is hier een script dat ik heb gemaakt om verschillende soorten willekeurige functies te demonstreren, het heeft drie functies, één voor getallen , alfa-tekens en speciale tekens. Het script genereert eenvoudigweg wachtwoorden en is slechts een voorbeeld om verschillende manieren te demonstreren om willekeurige tekens te genereren.
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))
Resultaat:
Antwoord 15
Een samenvatting en verbetering van enkele van de antwoorden.
import numpy as np
n = 5
[chr(i) for i in np.random.randint(ord('a'), ord('z') + 1, n)]
# ['b', 'f', 'r', 'w', 't']
Antwoord 16
#*A handy python password generator*
import random
letters = ['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', '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']
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+']
print("Welcome to the Python Password Generator!")
l= int(input("How many letters would you like in your password?\n"))
s = int(input(f"How many symbols would you like?\n"))
n = int(input(f"How many numbers would you like?\n"))
sequence = random.sample(letters,l)
num = random.sample(numbers,n)
sym = random.sample(symbols,s)
sequence.extend(num)
sequence.extend(sym)
random.shuffle(sequence)
password = ''.join([str(elem) for elem in sequence])#listToStr
print(password)
Antwoord 17
Nou, dit is mijn antwoord! Het werkt goed. Plaats het aantal willekeurige letters die u wilt in ‘nummer’ … (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)
Antwoord 18
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)
Antwoord 19
Mijn overdreven ingewikkelde stuk 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')
Het genereert in feite een willekeurig getal uit 26 en converteert het vervolgens naar de bijbehorende letter. Dit zou zeker verbeterd kunnen worden, maar ik ben nog maar een beginner en ik ben trots op dit stukje code.
Antwoord 20
Misschien kan dit je helpen:
import random
for a in range(64,90):
h = random.randint(64, a)
e += chr(h)
print e
Antwoord 21
Plaats een python op het toetsenbord en laat hem over de letters rollen totdat je je favoriete willekeurige combinatie vindt. Grapje!
import string #This was a design above but failed to print. I remodled it.
import random
irandom = random.choice(string.ascii_letters)
print irandom