web-dev-qa-db-de.com

Erzeugen Sie einen zufälligen Buchstaben in Python

Gibt es eine Möglichkeit, zufällige Buchstaben in Python zu generieren (wie random.randint, aber für Buchstaben)? Die Bereichsfunktionalität von random.randint wäre Nizza, aber ein Generator, der nur einen zufälligen Buchstaben ausgibt, wäre besser als nichts.

105
Kudu

Einfach:

>>> import string
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.letters)
'j'

string.letters gibt eine Zeichenfolge zurück, die Klein- und Großbuchstaben gemäß dem aktuellen Gebietsschema enthält. Wenn dies nicht akzeptabel ist, wird string.ascii_letters wahrscheinlich den Trick ausführen.

random.choice gibt ein einzelnes zufälliges Element aus einer Sequenz zurück.

182
Mark Rushakoff
>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'
67
joaquin
>>>def random_char(y):
       return ''.join(random.choice(string.ascii_letters) for x in range(y))

>>>print (random_char(5))
>>>fxkea

y Anzahl zufälliger Zeichen erzeugen 

22
Saad
>>> import random
>>> import string    
>>> random.choice(string.ascii_lowercase)
'b'
21
Taylor Leese

Ein anderer Weg der Vollständigkeit halber:

>>> chr(random.randrange(97, 97 + 26 + 1))

Verwenden Sie die Tatsache, dass ascii 'a' 97 ist und das Alphabet 26 Buchstaben enthält.

8
rlotun
def randchar(a, b):
    return chr(random.randint(ord(a), ord(b)))
4
Florian Diesch
import random
def guess_letter():
    return random.choice('abcdefghijklmnopqrstuvwxyz')
3
Toby

Sie können einfach eine Liste erstellen:

import random
list1=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
b=random.randint(0,7)
print(list1[b])
3
Athreya

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(letters)

['o', 'l', 'p', 'f', 'v']
2
salhin
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())
1
Vaibhav Pthak

Sie können verwenden

map(lambda a : chr(a),  np.random.randint(low=65, high=90, size=4))
0
Ankit Agrawal
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
0
user9739613
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
0
王孝先

Alle vorherigen Antworten sind korrekt. Wenn Sie nach zufälligen Zeichen verschiedener Typen suchen (z. B. alphanumerische Zeichen und Sonderzeichen), habe ich ein Skript erstellt, das verschiedene Arten der Erstellung zufälliger Funktionen veranschaulicht. Zeichen und Sonderzeichen. Das Skript generiert lediglich Passwörter und ist nur ein Beispiel, um verschiedene Arten der Generierung zufälliger Zeichen zu zeigen. 

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('!$%&()*+,-.:;<=>[email protected][]^_`{|}~'))

    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:

 enter image description here

0
grepit