Yanıtlar:
Basit:
>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
string.ascii_letters
geçerli yerel ayara göre küçük ve büyük harf içeren bir dize döndürür.
random.choice
bir diziden tek bir rastgele öğe döndürür.
from string import ascii_letters, digits
ve sonra 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
ve ascii_lowercase
.
>>>def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
>>>print (random_char(5))
>>>fxkea
y rastgele sayı karakteri oluşturmak için
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
benzersiz bir değer kümesirandom.choice()
?
random.choice
ve random.randint
tek bir değer döndürür. numpy.random.choice
Replace = False, gibi eklerseniz benzersiz bir set vermek için de kullanabilirsiniz :numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
>>> import random
>>> import string
>>> random.choice(string.ascii_lowercase)
'b'
Başka bir yol, bütünlük için:
>>> chr(random.randrange(97, 97 + 26))
Gerçeği kullanın ascii
'A' nın 97 olduğu ve alfabede 26 harf olduğu .
random.randrange()
İşlev çağrısının üst ve alt sınırını belirlerken, random.randrange()
bunun üst sınırında özel olduğunu unutmayın , yani sağlanan değerden yalnızca 1 birim daha az bir tamsayı üretecektir.
chr(random.randrange(97, 97 + 26 - 1))
?
chr(random.randrange(97, 97 + 26)
. random.randrange()
üst sınırında münhasırdır, yani tüm karakter aralığını elde etmek için 97 - 122
geçilen argümanın olması gerekir 123
.
97 + 26
kullanıldığını görüyorum .
Bir veya daha fazla rastgele harf (ler) elde etmek için bunu kullanabilirsiniz
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
nedir?
help(random.choices)
devletleri If the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Bu, dağıtımın ayrı tekdüze dağılım olduğu anlamına gelir ( 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())
Kullanabilirsiniz
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))
Bunun gibi rastgele dizeler alabilirsiniz:
g9CtUljUWD9wtk1z07iF
ndPbI1DDn6UvHSQoDMtd
klMFY3pTYNVWsNJ6cs34
Qgr7OEalfhXllcFDGh2l
string.ascii_letters
. Liste kavrayışını keylist = random.choices(base_str(), k=KEY_LEN)
3 kullanarak kaydedebilirsiniz . Neden base_str
bir fonksiyon olarak değil de 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
Önceki tüm cevaplar doğrudur, eğer çeşitli tipte rastgele karakterler (yani alfasayısal ve özel karakterler) arıyorsanız, o zaman burada rastgele fonksiyonlar yaratmanın çeşitli tiplerini göstermek için oluşturduğum bir komut dosyası, sayılar için bir tane, alfa- karakterler ve özel karakterler. Komut dosyası yalnızca parolalar oluşturur ve rastgele karakterler oluşturmanın çeşitli yollarını gösteren bir örnektir.
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))
Sonuç:
bu benim cevabım! İyi çalışıyor. İstediğiniz rasgele harflerin sayısını 'sayı'ya koyun ... (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)
Aşırı karmaşık kod parçam:
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')
Temel olarak 26'dan rastgele bir sayı üretir ve sonra karşılık gelen harfine dönüştürür. Bu meydan okurca geliştirilebilir ama ben sadece bir acemi ve bu kod parçası ile gurur duyuyorum.
print(chr(96 + letter))
hayır, if
- elif
cehennem gerekli olan
Belki bu size yardımcı olabilir:
import random
for a in range(64,90):
h = random.randint(64, a)
e += chr(h)
print e
@AAADCCEHFGJLDJF@EHFMHKWUR
Klavyeye bir python yerleştirin ve tercih ettiğiniz rastgele açılanı bulana kadar harflerin üzerinden gitmesine izin verin Sadece şaka yapıyorum!
import string #This was a design above but failed to print. I remodled it.
import random
irandom = random.choice(string.ascii_letters)
print irandom