b
উপসর্গ একটি প্রকাশ করে bytes
স্ট্রিং আক্ষরিক ।
আপনি যদি পাইথন 3 উত্স কোডে এটি ব্যবহার করে দেখেন, অভিব্যক্তিটি কোনও নিয়মিত ইউনিকোড অবজেক্ট নয়, একটি bytes
অবজেক্ট তৈরি করে । আপনি যদি এটি দেখতে পান যে এটি আপনার পাইথন শেলটিতে বা কোনও তালিকার অংশ হিসাবে, ডিক্ট বা অন্যান্য ধারক সামগ্রীর অংশ হিসাবে প্রতিপন্ন হয় তবে আপনি এই চিহ্নটি ব্যবহার করে প্রতিনিধিত্ব করা কোনও বস্তু দেখতে পাবেন ।str
bytes
bytes
অবজেক্টগুলিতে মূলত 0-255 ব্যাপ্তির মধ্যে পূর্ণসংখ্যার ক্রম থাকে, তবে উপস্থাপিত হলে পাইথন এই বাইটগুলি এএসসিআইআই কোডপয়েন্ট হিসাবে প্রদর্শন করে যাতে তাদের বিষয়বস্তু পড়া সহজ হয়। বাইরে কোনো বাইট মুদ্রণযোগ্য ASCII অক্ষর পরিসীমা পালাবার ক্রম (যেমন হিসাবে দেখানো হয় \n
, \x82
ইত্যাদি)। বিপরীতভাবে, আপনি বাইট মানগুলি সংজ্ঞায়িত করতে ASCII অক্ষর এবং এস্কেপ ক্রম দুটি ব্যবহার করতে পারেন; ASCII মানগুলির জন্য তাদের সংখ্যাসূচক মান ব্যবহৃত হয় (যেমন b'A'
== b'\x41'
)
যেহেতু কোনও bytes
অবজেক্টটি পূর্ণসংখ্যার ক্রম সমন্বিত থাকে, আপনি bytes
0-255 রেঞ্জের মানগুলির সাথে, কোনও তালিকার মতো মানগুলির সাথে সংখ্যার অন্য কোনও ক্রম থেকে কোনও অবজেক্ট তৈরি করতে পারেন :
bytes([72, 101, 108, 108, 111])
এবং ইন্ডেক্স আপনি পূর্ণসংখ্যার ফিরিয়ে দেয় (কিন্তু slicing একটি নতুন উত্পাদন করে bytes
মান; উপরে উদাহরণস্বরূপ, value[0]
আপনি দেয় 72
, কিন্তু value[:1]
হয় b'H'
যেমন 72 বড় হাতের অক্ষর জন্য ASCII কোড বিন্দু এইচ )।
bytes
এনকোডযুক্ত পাঠ্য সহ মডেল বাইনারি ডেটা । যদি আপনার মানটিতে পাঠ্য থাকে তবে আপনাকে প্রথমে সঠিক কোডেক ব্যবহার করে ডিকোড করতে হবে। যদি ডেটাটি ইউটিএফ -8 হিসাবে এনকোড করা থাকে, উদাহরণস্বরূপ, আপনি এর সাথে একটি ইউনিকোড মান পেতে পারেন :bytes
str
strvalue = bytesvalue.decode('utf-8')
বিপরীতে, কোনও str
বস্তুর পাঠ্য থেকে যেতে bytes
আপনাকে এনকোড করতে হবে । ব্যবহারের জন্য আপনাকে কোনও এনকোডিংয়ের বিষয়ে সিদ্ধান্ত নেওয়া দরকার; ডিফল্টটি ইউটিএফ -8 ব্যবহার করা হয় তবে আপনার যা প্রয়োজন তা আপনার ব্যবহারের ক্ষেত্রে অত্যন্ত নির্ভরশীল:
bytesvalue = strvalue.encode('utf-8')
আপনি একই কাজ করতে কনস্ট্রাক্টরও ব্যবহার করতে পারেন bytes(strvalue, encoding)
।
ডিকোডিং এবং এনকোডিং উভয় পদ্ধতিই ত্রুটিগুলি কীভাবে পরিচালনা করা উচিত তা নির্দিষ্ট করতে একটি অতিরিক্ত যুক্তি গ্রহণ করে ।
পাইথন 2, সংস্করণ 2.6 এবং 2.7 এছাড়াও b'..'
পাইথন 2 এবং 3 উভয় ক্ষেত্রে কাজ করে এমন কোডটি স্বাচ্ছন্দ্যে স্ট্রিং আক্ষরিক সিনট্যাক্স ব্যবহার করে স্ট্রিং লিটারাল তৈরি সমর্থন করে ।
bytes
str
স্ট্রিংগুলির মতো অবজেক্টগুলিও অপরিবর্তনীয় । যদি আপনার কোনও মিউটেটেবল বাইট মান প্রয়োজন হয় তবে একটি bytearray()
অবজেক্ট ব্যবহার করুন ।