जवाबों:
सरल:
>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
string.ascii_letters
वर्तमान लोकेल के अनुसार लोअर केस और अपर केस लेटर्स युक्त स्ट्रिंग देता है।
random.choice
एक अनुक्रम से एक एकल, यादृच्छिक तत्व देता है।
from string import ascii_letters, digits
और from random import choice
) है:''.join([choice(ascii_letters + digits) for i in range(32)])
>>>def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
>>>print (random_char(5))
>>>fxkea
यादृच्छिक अक्षरों की y संख्या उत्पन्न करने के लिए
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
एक अनूठा सेट नहीं लौटाता है , जो समान नहीं है random.choice()
?
random.choice
और random.randint
एक ही मान लौटाते हैं। numpy.random.choice
यदि आप प्रतिस्थापित = गलत जोड़ते हैं, तो आप एक अनूठा सेट देने के लिए भी उपयोग कर सकते हैं :numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
पूर्णता के लिए एक और तरीका:
>>> chr(random.randrange(97, 97 + 26))
इस तथ्य का उपयोग करें कि ascii
'a' 97 है, और वर्णमाला में 26 अक्षर हैं।
random.randrange()
फ़ंक्शन कॉल के ऊपरी और निचले बाउंड को निर्धारित करते समय , याद रखें कि random.randrange()
यह अपने ऊपरी बाउंड पर अनन्य है, जिसका अर्थ है कि यह केवल 1 यूनिट तक एक पूर्णांक उत्पन्न करेगा जो प्रदान किए गए मान से कम है।
chr(random.randrange(97, 97 + 26 - 1))
?
chr(random.randrange(97, 97 + 26)
। random.randrange()
अपने ऊपरी बाउंड पर अनन्य है, जिसका अर्थ है कि वर्णों की पूरी श्रृंखला प्राप्त करने के लिए 97 - 122
, पास किया गया तर्क होना चाहिए 123
।
97 + 26
इसका उपयोग क्यों किया जाता है।
आप एक या अधिक यादृच्छिक अक्षर प्राप्त करने के लिए इसका उपयोग कर सकते हैं
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)
कहा गया है If the relative weights or cumulative weights are not specified, the selections are made with equal probability.
कि इसका अर्थ होगा, वितरण असतत समान वितरण ( en.wikipedia.org/wiki/Discrete_uniform_distribution ) है।
def randchar(a, b):
return chr(random.randint(ord(a), ord(b)))
आप उपयोग कर सकते हैं
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))
आप इस तरह यादृच्छिक तार प्राप्त कर सकते हैं:
g9CtUljUWD9wtk1z07iF
ndPbI1DDn6UvHSQoDMtd
klMFY3pTYNVWsNJ6cs34
Qgr7OEalfhXllcFDGh2l
string.ascii_letters
2 होगा । आप सूची का उपयोग करके समझ को बचा सकते हैं keylist = random.choices(base_str(), k=KEY_LEN)
। 3. base_str
फ़ंक्शन के रूप में क्यों है और ए नहीं है 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
पिछले सभी उत्तर सही हैं, यदि आप विभिन्न प्रकारों (यानी अल्फ़ान्यूमेरिक और विशेष वर्णों) के यादृच्छिक वर्णों की तलाश कर रहे हैं, तो यहाँ एक स्क्रिप्ट है जो मैंने विभिन्न प्रकार के यादृच्छिक कार्यों को प्रदर्शित करने के लिए बनाई है, इसमें संख्याओं के लिए तीन फ़ंक्शन एक हैं, अल्फा- वर्ण और विशेष वर्ण। स्क्रिप्ट बस पासवर्ड उत्पन्न करती है और यादृच्छिक वर्णों को उत्पन्न करने के विभिन्न तरीकों को प्रदर्शित करने के लिए सिर्फ एक उदाहरण है।
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))
परिणाम:
खैर, यह मेरा जवाब है! यह अच्छा काम करता है। बस आप 'नंबर' में इच्छित यादृच्छिक अक्षरों की संख्या डालें ... (पायथन 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 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')
यह मूल रूप से 26 में से एक यादृच्छिक संख्या उत्पन्न करता है और फिर अपने संबंधित पत्र में परिवर्तित होता है। यह निश्चित रूप से सुधार किया जा सकता है लेकिन मैं केवल एक शुरुआतकर्ता हूं और मुझे इस कोड के टुकड़े पर गर्व है।
print(chr(96 + letter))
, नहीं if
- elif
नरक की जरूरत है
शायद यह आपकी मदद कर सकता है:
import random
for a in range(64,90):
h = random.randint(64, a)
e += chr(h)
print e
@AAADCCEHFGJLDJF@EHFMHKWUR
कीबोर्ड पर एक अजगर रखें और उसे अक्षरों पर रोल करने दें जब तक कि आपको अपना पसंदीदा रैंडम कॉम्बो न मिल जाए बस मजाक कर रहे हैं!
import string #This was a design above but failed to print. I remodled it.
import random
irandom = random.choice(string.ascii_letters)
print irandom