পাইথনে আমার n অক্ষরগুলির সাথে একটি স্ট্রিং তৈরি করতে হবে। বিদ্যমান পাইথন গ্রন্থাগারের সাথে এটি অর্জনের জন্য কি একটি লাইনের উত্তর আছে? উদাহরণস্বরূপ, আমার 10 টি অক্ষরের একটি স্ট্রিং দরকার:
string_val = 'abcdefghij'
পাইথনে আমার n অক্ষরগুলির সাথে একটি স্ট্রিং তৈরি করতে হবে। বিদ্যমান পাইথন গ্রন্থাগারের সাথে এটি অর্জনের জন্য কি একটি লাইনের উত্তর আছে? উদাহরণস্বরূপ, আমার 10 টি অক্ষরের একটি স্ট্রিং দরকার:
string_val = 'abcdefghij'
উত্তর:
কেবল একই বর্ণটি 10 বার পুনরাবৃত্তি করতে:
string_val = "x" * 10 # gives you "xxxxxxxxxx"
এবং যদি আপনি nএলোমেলো ছোট ছোট অক্ষরগুলির মতো আরও জটিল কিছু চান তবে তা এখনও কোডের একমাত্র লাইন (আমদানির বিবরণী গণনা এবং সংজ্ঞা না দিয়ে n):
from random import choice
from string import ascii_lowercase
n = 10
string_val = "".join(choice(ascii_lowercase) for i in range(n))
প্রথম দশটি ছোট হাতের অক্ষর হ'ল string.lowercase[:10](যদি আপনি stringআগে আদর্শ লাইব্রেরি মডিউলটি আমদানি করে থাকেন তবে অবশ্যই ;-)।
"10 টি অক্ষরের একটি স্ট্রিং তৈরি করার" অন্যান্য উপায়: 'x'*10(সমস্ত দশটি অক্ষর ছোট ছোট; x;-), ''.join(chr(ord('a')+i) for i in xrange(10))(আবার প্রথম দশটি ছোট হাতের অক্ষর), ইত্যাদি ইত্যাদি ;-) থাকবে।
.lowercase( ascii_lowercaseসাম্প্রতিক পাইথন 2 এর পাশাপাশি পাইথন 3 এও রয়েছে)।
"এক লাইনে" কেন? আপনি এক লাইনে কিছু ফিট করতে পারেন।
ধরে নিই যে আপনি তাদের 'ক' দিয়ে শুরু করতে চান এবং প্রতিবার একটি চরিত্রের মাধ্যমে বৃদ্ধি (মোড়ানোর সাথে> 26), এখানে একটি লাইন রয়েছে:
>>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x))))
>>> mkstring(10)
'abcdefghij'
>>> mkstring(30)
'abcdefghijklmnopqrstuvwxyzabcd'
এটি প্রশ্নটি একটু দূরে থাকতে পারে তবে উত্পন্ন স্ট্রিংয়ের এলোমেলোভাবে আগ্রহী তাদের জন্য, আমার উত্তরটি হবে:
import os
import string
def _pwd_gen(size=16):
chars = string.letters
chars_len = len(chars)
return str().join(chars[int(ord(c) / 256. * chars_len)] for c in os.urandom(size))
আপনি যদি বারবার অক্ষর ব্যবহার করতে পারেন তবে আপনি *অপারেটরটি ব্যবহার করতে পারেন :
>>> 'a'*5
'aaaaa'