python সহজ কিভাবে আপনি পাইথন বাইনারি literals প্রকাশ করবেন?




সহজ ভাষায় পাইথন ৩ pdf (5)

0 শুরুতে এখানে উল্লেখ করা হয়েছে যে বেসটি 8 (10 নয়), যা দেখতে খুব সহজ:

>>> int('010101', 0)
4161

যদি আপনি 0 দিয়ে শুরু না করেন, তবে পাইথন সংখ্যাটি বেস 10 অনুমান করে।

>>> int('10101', 0)
10101

কিভাবে আপনি পাইথন লিটারেলগুলির সাথে একটি বাইনারি নম্বর হিসাবে পূর্ণসংখ্যা প্রকাশ করবেন?

আমি সহজেই হ্যাকের উত্তরটি খুঁজে পেতে সক্ষম হয়েছিলাম:

>>> 0x12AF
4783
>>> 0x100
256

এবং octal:

>>> 01267
695
>>> 0100
64

কিভাবে আপনি পাইথন বাইনারি প্রকাশ করতে আক্ষরিক ব্যবহার করবেন?

উত্তর সংক্ষিপ্তসার

  • পাইথন 2.5 এবং পূর্ববর্তী: int('01010101111',2) ব্যবহার করে বাইনারি প্রকাশ করতে পারে তবে একটি আক্ষরিক নয়।
  • পাইথন 2.5 এবং তার আগে: বাইনারি লিখনগুলি প্রকাশ করার কোন উপায় নেই
  • পাইথন 2.6 বিটা: আপনি তাই করতে পারেন: 0b1100111 বা 0B1100111
  • পাইথন 2.6 বিটা: 0o27 বা 0O27 (দ্বিতীয় চরিত্রটি অক্ষর O) কে একটি অকটাল প্রতিনিধিত্ব করার অনুমতি দেবে।
  • পাইথন 3.0 বিটা: 2.6 হিসাবে একই, তবে অক্টালগুলির জন্য পুরানো 027 সিনট্যাক্সকে আর অনুমতি দেবে না।

যতদূর আমি পাইথনকে বলতে পারি, 2.5 এর মাধ্যমে, শুধুমাত্র হেক্সাডেসিমেল ও অক্টাল লিটারেলগুলিকে সমর্থন করে। আমি ভবিষ্যতে সংস্করণে বাইনারি যোগ সম্পর্কে কিছু আলোচনা কিন্তু কিছুই নিশ্চিত খুঁজে পেতে।


আমি নিশ্চিত যে পাইথন 3.0 এ হ্যাক () এবং oct () এর সাথে যেতে এটি সম্ভবত বিন (3.0) পরিবর্তনের কারণে এটির একটি।

সম্পাদনা করুন: lbrandy এর উত্তর সব ক্ষেত্রে সঠিক।


কিভাবে আপনি পাইথন বাইনারি literals প্রকাশ করবেন?

তারা "বাইনারি" লিখিত নয়, বরং "পূর্ণসংখ্যা লিটারেলস"। আপনি 0 দিয়ে একটি বাইনারি বিন্যাস সহ পূর্ণসংখ্যা লিটারালগুলি প্রকাশ করতে পারেন, যা একটি B বা b শৃঙ্খলা এবং শৃঙ্খলা অনুসারে অনুসরণ করে, উদাহরণস্বরূপ:

>>> 0b0010101010
170
>>> 0B010101
21

পাইথন 3 docs থেকে, পাইথন এ পূর্ণসংখ্যা লিটারেল সরবরাহ করার উপায়গুলি হল:

ইন্টিগ্রার লিটারেলগুলি নিম্নোক্ত লিকিক্যাল সংজ্ঞা দ্বারা বর্ণিত হয়:

integer      ::=  decinteger | bininteger | octinteger | hexinteger
decinteger   ::=  nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")*
bininteger   ::=  "0" ("b" | "B") (["_"] bindigit)+
octinteger   ::=  "0" ("o" | "O") (["_"] octdigit)+
hexinteger   ::=  "0" ("x" | "X") (["_"] hexdigit)+
nonzerodigit ::=  "1"..."9"
digit        ::=  "0"..."9"
bindigit     ::=  "0" | "1"
octdigit     ::=  "0"..."7"
hexdigit     ::=  digit | "a"..."f" | "A"..."F"

উপলব্ধ মেমরি সংরক্ষণ করা যাবে কি ছাড়া পূর্ণসংখ্যা লিটারাল দৈর্ঘ্যের জন্য কোন সীমা নেই।

উল্লেখ্য যে একটি অ-শূন্য দশমিক সংখ্যাতে নেতৃস্থানীয় শূন্যতা অনুমোদিত নয়। এটি সি-স্টাইল অক্টাল লিটারালগুলির সাথে বিচ্ছিন্নতার জন্য, যা পাইথন সংস্করণ 3.0 এর আগে ব্যবহৃত হয়।

পূর্ণসংখ্যা লিখিত কিছু উদাহরণ:

7     2147483647                        0o177    0b100110111
3     79228162514264337593543950336     0o377    0xdeadbeef
      100_000_000_000                   0b_1110_0101

সংস্করণ 3.6 এ পরিবর্তন করা হয়েছে: আন্ডারস্কোরগুলি এখন লিখনগুলিতে গোষ্ঠীগুলির উদ্দেশ্যে অনুমোদিত।

বাইনারি প্রকাশ করার অন্যান্য উপায়:

আপনি একটি স্ট্রিং বস্তুর মধ্যে জিরো এবং বেশী থাকতে পারেন যা ম্যানিপুলেশন করা যেতে পারে (যদিও আপনি সম্ভবত বেশিরভাগ ক্ষেত্রেই পূর্ণসংখ্যাটির বিটwise ক্রিয়াকলাপগুলি করতে পারেন) - কেবলমাত্র শূন্যস্থান এবং বেশী এবং আপনি যে রূপ থেকে রূপান্তরিত করছেন তার স্ট্রিংটি প্রবেশ করুন (2 ):

>>> int('010101', 2)
21

আপনি বিকল্পভাবে 0b বা 0B উপসর্গটি নির্বাচন করতে পারেন:

>>> int('0b0010101010', 2)
170

যদি আপনি বেস হিসাবে এটি 0 পাস করেন তবে স্ট্রিংটি একটি উপসর্গের সাথে উল্লেখ না করলে এটি বেস 10 অনুমান করবে:

>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21

Int থেকে ফিরে মানুষের পঠনযোগ্য বাইনারি রূপান্তর:

বাইনারি শব্দের স্ট্রিং উপস্থাপনা দেখতে আপনি বিনতে পূর্ণসংখ্যাটি পাস করতে পারেন:

>>> bin(21)
'0b10101'

এবং আপনি পিছনে যেতে যেতে bin এবং int সংযুক্ত করতে পারেন:

>>> bin(int('010101', 2))
'0b10101'

পূর্ববর্তী জিরোসের সাথে সর্বনিম্ন প্রস্থ থাকতে চাইলেও আপনি একটি বিন্যাস স্পেসিফিকেশন ব্যবহার করতে পারেন:

>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'

রেফারেন্সের জন্য ভবিষ্যতে পাইথন সম্ভাবনা:
পাইথন 2.6 দিয়ে শুরু করে আপনি প্রিফিক্স 0b বা 0B ব্যবহার করে বাইনারি লিখনগুলি প্রকাশ করতে পারেন:

>>> 0b101111
47

আপনি একটি সংখ্যা বাইনারি প্রতিনিধিত্ব পেতে নতুন বিন ফাংশন ব্যবহার করতে পারেন:

>>> bin(173)
'0b10101101'

ডকুমেন্টেশনের ডেভেলপমেন্ট সংস্করণ: পাইথন 2.6 এ নতুন কি







literals