উত্তর:
সরল:
>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.ascii_letters)
'j'
string.ascii_letters
বর্তমান লোকেল অনুসারে লোয়ার কেস এবং বড় হাতের অক্ষর সম্বলিত একটি স্ট্রিং প্রদান করে।
random.choice
একটি অনুক্রম থেকে একটি একক, এলোমেলো উপাদান প্রদান করে returns
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
'একটি' 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)))
import random
def guess_letter():
return random.choice('abcdefghijklmnopqrstuvwxyz')
তুমি ব্যবহার করতে পার
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 হবে You ব্যবহার করে আপনি তালিকা বোধগম্যতা সংরক্ষণ করতে পারেন 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 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)
আমার অতিরিক্ত জটিল কোড:
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')
এটি মূলত ২ of টির মধ্যে একটি এলোমেলো সংখ্যা তৈরি করে এবং তারপরে তার সংশ্লিষ্ট চিঠিতে রূপান্তর করে। এটিকে অসম্পূর্ণভাবে উন্নত করা যেতে পারে তবে আমি কেবল এক শিক্ষানবিস এবং কোডের এই অংশটি নিয়ে আমি গর্বিত।
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