b
उपसर्ग एक bytes
string literal का प्रतीक है।
यदि आप इसे पायथन 3 स्रोत कोड में उपयोग करते हैं, तो अभिव्यक्ति bytes
object बनाता है, नियमित Unicode str
object नहीं। यदि आप इसे अपने पायथन शेल में या किसी सूची, dict या अन्य कंटेनर सामग्री के हिस्से के रूप में प्रतिबिंबित करते हैं, तो आप इस नोटेशन का उपयोग करके प्रतिनिधित्व की गई bytes
ऑब्जेक्ट देखते हैं।
bytes
ऑब्जेक्ट्स में मूल रूप से 0-255 की सीमा में पूर्णांक का अनुक्रम होता है, लेकिन जब प्रतिनिधित्व किया जाता है, तो पाइथन इन बाइट्स को ASCII कोडपॉइंट्स के रूप में प्रदर्शित करता है ताकि वे अपनी सामग्री को पढ़ना आसान बना सकें। प्रिंट करने योग्य ASCII वर्ण की श्रेणी से बाहर किसी भी बाइट्स भागने दृश्यों के रूप में दिखाया जाता है (उदाहरण के लिए \n
, \x82
, आदि)।
क्योंकि एक bytes
वस्तु पूर्णांकों का एक दृश्य से मिलकर बनता है, तो आप पूर्णांकों के किसी भी अन्य अनुक्रम से एक bytes
वस्तु मूल्यों के साथ 0-255 रेंज में, एक सूची की तरह का निर्माण कर सकते हैं:
bytes([72, 101, 108, 108, 111])
bytes
मॉडल बाइनरी डेटा, एन्कोडेड पाठ भी शामिल है। यदि आपके bytes
मान में टेक्स्ट होता है, तो आपको सही कोडेक का उपयोग करके इसे पहले डीकोड करने की आवश्यकता होती है। डेटा को UTF-8 के रूप में एन्कोड किया जाता है, उदाहरण के लिए, आप के साथ एक यूनिकोड str
मूल्य प्राप्त कर सकते हैं:
strvalue = bytesvalue.decode('utf-8')
इसके विपरीत, bytes
आप एनकोड की जरूरत के लिए एक str
वस्तु में पाठ से जाने के लिए। आपको उपयोग करने के लिए एन्कोडिंग पर निर्णय लेने की आवश्यकता है; डिफ़ॉल्ट UTF-8 उपयोग करने के लिए है, लेकिन क्या आप की आवश्यकता होगी आपके उपयोग के मामले पर बहुत निर्भर है:
bytesvalue = strvalue.encode('utf-8')
तुम भी निर्माता, उपयोग कर सकते हैं भी ऐसा ही करने के लिए।
दोनों डिकोडिंग और एन्कोडिंग विधियां specify how errors should be handled पर अतिरिक्त तर्क लेती हैं।
अजगर 2, संस्करण 2.6 और 2।7 पाइथन 2 और 3 दोनों पर काम करने वाले कोड को कम करने के लिए b'..'
स्ट्रिंग शाब्दिक वाक्यविन्यास का उपयोग करके स्ट्रिंग अक्षर बनाने का भी समर्थन करता है।
@SLott: आपके द्वारा प्रदान किए गए लिंक का पालन करें, आप देखेंगे कि बी उपसर्ग ** ** ** में अनुमति नहीं है स्ट्रिंग उपसर्ग ... 2.6 के लिए (संदर्भ सामग्री में मामूली त्रुटि की तरह दिखता है)। और इस तरह की चीजों के बारे में googling आसान नहीं है। मैंने "बी पायथन स्ट्रिंग उपसर्ग" जैसे कीवर्ड की कोशिश की और मूल रूप से कहीं भी नहीं मिला। – kriss
लिंक एसएलओटी का इस्तेमाल एक संस्करण विनिर्देशक गायब है; यह पायथन 3 के बारे में है: https://docs.python.org/3/reference/lexical_analysis.html#string-literals। क्रॉस-वर्जन पायथन कोड की सुविधा के लिए उपसर्ग अब [पायथन 2.6 और ऊपर] (https://docs.python.org/2/whatsnew/2.6.html#pep-3112-byte-literals) में भी समर्थित है। –
यह प्रश्न न तो "सटीक डुप्लिकेट" है और न ही प्रश्न का उत्तर है "क्या मैं अपने प्रिंट स्टेटमेंट में इस 'बी' चरित्र से छुटकारा पा सकता हूं?" http://stackoverflow.com/questions/42599851/can-i-get-rid-of-this-b-character-in-my-print-statement/42599902#42599902 क्या आप अनजान करना चाहते हैं कि कृपया मारिजिन? वह व्यक्ति जिसने वास्तव में उत्तर देने का प्रयास किया है, वह वास्तविक प्रश्न का उत्तर देने में सक्षम होने की सराहना कर सकता है। –