Genereer een willekeurige letter in Python

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_lettersgeeft een tekenreeks terug die de kleine letters en hoofdletters bevat volgens de huidige landinstelling.

random.choicegeeft 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*

hier is de uitvoer

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

Other episodes