পাইথনে ফরম্যাট কনভার্সন, ফরম্যাট (জিরো-ফিলিং, এক্সপোনেনশিয়াল নোটেশন, হেক্সাডেসিমেল, ইত্যাদি)

ব্যবসায়

পাইথনে একটি সংখ্যা বা স্ট্রিংকে বিভিন্ন ফরম্যাটে রূপান্তর (ফরম্যাট) করতে, বিল্ট-ইন ফাংশন ফরম্যাট() বা স্ট্রিং পদ্ধতি str.format() ব্যবহার করুন।

এই বিভাগে, আমরা নিম্নলিখিত ফাংশনগুলি কীভাবে ব্যবহার করব তা ব্যাখ্যা করব।

  • অন্তর্নির্মিত ফাংশন (যেমন প্রোগ্রামিং ভাষায়)format()
  • স্ট্রিং পদ্ধতিstr.format()

উপরন্তু, নিম্নলিখিত বিন্যাসে রূপান্তর করার জন্য বিন্যাস স্পেসিফিকেশন স্ট্রিং নমুনা কোড সহ ব্যাখ্যা করা হয়েছে।

  • বাম-জাস্টিফাইড, সেন্টার-জাস্টিফাইড, রাইট-জাস্টিফাইড
  • শূন্য ভরাট
  • চিহ্ন (প্লাস বা বিয়োগ)
  • সংখ্যা বিভাজক (কমা, আন্ডারস্কোর)
  • বাইনারি, অক্টাল এবং হেক্সাডেসিমেল সংখ্যা
  • দশমিক বিন্দুর পরে সংখ্যার সংখ্যা উল্লেখ করুন
  • উল্লেখযোগ্য পরিসংখ্যান (গুরুত্বপূর্ণ সংখ্যার সংখ্যা)
  • সূচকীয় স্বরলিপি
  • শতাংশ প্রদর্শন

মনে রাখবেন যে পাইথন 3.6 থেকে, এটিকে আরও সংক্ষিপ্ত করার জন্য স্ট্রিং পদ্ধতি str.format() এ f-স্ট্রিং (f-স্ট্রিং) যোগ করা হয়েছে।

অন্তর্নির্মিত ফাংশন: বিন্যাস()

ফর্ম্যাট() একটি স্ট্যান্ডার্ড পাইথন বিল্ট-ইন ফাংশন হিসাবে সরবরাহ করা হয়েছে।

রূপরেখাটি নিম্নরূপ।

  • format(value, format_spec)
    • প্রথম যুক্তি: thevalue
      মূল মান। স্ট্রিং str, সংখ্যা int, float, ইত্যাদি।
    • দ্বিতীয় যুক্তিformat_spec
      বিন্যাস স্পেসিফিকেশন স্ট্রিং। স্ট্রিং str
    • রিটার্ন মান: একটি ফরম্যাটেড স্ট্রিং str

উদাহরণ নিচে দেখানো হয়েছে. ফরম্যাট স্ট্রিংগুলির প্রকার এবং কীভাবে সেগুলি লিখতে হয় তা পরে বর্ণনা করা হয়েছে।

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

s = format(255, '04x')
print(s)
print(type(s))
# 00ff
# <class 'str'>

print(format('center', '*^16'))
# *****center*****

স্ট্রিং পদ্ধতি str.format()

স্ট্রিং স্ট্র টাইপের জন্য একটি ফর্ম্যাট() পদ্ধতিও রয়েছে।

স্ট্রিং-এ {} যেটি ফরম্যাট() পদ্ধতিকে কল করে তাকে প্রতিস্থাপন ক্ষেত্র বলা হয় এবং ফরম্যাট() পদ্ধতির আর্গুমেন্ট দ্বারা প্রতিস্থাপিত হয়।

ফর্ম্যাট স্পেসিফিকেশন স্ট্রিংটি প্রতিস্থাপন ক্ষেত্রে {} লিখতে হবে এবং তারপরে “:” লিখতে হবে।

রিটার্ন মান হল একটি ফরম্যাট করা স্ট্রিং str।

উপরে বর্ণিত বিল্ট-ইন ফাংশন ফরম্যাট() এর সমতুল্য প্রক্রিয়াটি নিম্নরূপ।

s = '{:04x}'.format(255)
print(s)
print(type(s))
# 00ff
# <class 'str'>

print('{:*^16}'.format('center'))
# *****center*****

আবার, আমরা আর্গুমেন্ট হিসাবে সংখ্যাসূচক লিটারাল এবং স্ট্রিং লিটারেল ব্যবহার করছি, তবে অবশ্যই ভেরিয়েবলগুলিও গ্রহণযোগ্য।

প্রতিস্থাপন ক্ষেত্রের জন্য আর্গুমেন্ট নির্দিষ্ট করা

ক্রমানুসারে আর্গুমেন্ট নির্দিষ্ট করুন (ডিফল্ট)

একাধিক প্রতিস্থাপন ক্ষেত্র হতে পারে {}, এবং ডিফল্টরূপে, পদ্ধতি আর্গুমেন্টগুলি ক্রমানুসারে প্রক্রিয়া করা হয়। যদি {}-এ বিন্যাস স্পেসিফিকেশন স্ট্রিংটি বাদ দেওয়া হয়, তবে এটি str() দ্বারা একটি স্ট্রিং-এ রূপান্তরিত হবে।

একটি স্ট্রিং মধ্যে পরিবর্তনশীল মান সন্নিবেশ এবং তাদের মুদ্রণ জন্য দরকারী.

print('{}-{}-{}'.format('100', '二百', 300))
# 100-二百-300

পূর্ণসংখ্যা মানের জন্য একটি অবস্থানগত যুক্তি উল্লেখ করুন

যদি একটি পূর্ণসংখ্যার মান {} এ নির্দিষ্ট করা হয়, যেমন {0} বা {1}, আউটপুট আর্গুমেন্টের ক্রম উপর নির্ভর করবে। একই নম্বর বারবার ব্যবহার করা যেতে পারে। আপনি একটি স্ট্রিং একই মান সন্নিবেশ করতে চান যখন এটি দরকারী.

print('{0}-{1}-{0}'.format('foo', 'bar'))
# foo-bar-foo

নির্বিচারে নামের (স্ট্রিং) জন্য কীওয়ার্ড আর্গুমেন্ট নির্দিষ্ট করুন

এছাড়াও আপনি {}-এ যেকোনো নাম উল্লেখ করতে পারেন এবং এটি একটি কীওয়ার্ড আর্গুমেন্ট হিসেবে লিখতে পারেন।

print('{day}/{month}/{year}/'.format(day=11, month=1, year=2018))
# 11/1/2018

একটি যুক্তি হিসাবে একটি তালিকা বা অভিধান নির্দিষ্ট করুন

তালিকা এবং অভিধান আর্গুমেন্ট হিসাবে নির্দিষ্ট করা যেতে পারে.

একটি প্রতিস্থাপন ক্ষেত্রে একটি তালিকার সূচী বা একটি অভিধানের কী নির্দিষ্ট করতে [] ব্যবহার করুন। উল্লেখ্য যে উদ্ধৃতি চিহ্ন “‘” এবং “” অভিধান কী নির্দিষ্ট করতে ব্যবহার করা হয় না।

আপনি যদি একই আর্গুমেন্ট বারবার ব্যবহার করতে চান, তাহলে আপনাকে উপরে বর্ণিত একটি পূর্ণসংখ্যার মান বা একটি স্ট্রিং (নাম) উল্লেখ করতে হবে।

l = ['one', 'two', 'three']
print('{0[0]}-{0[1]}-{0[2]}'.format(l))
# one-two-three

d1 = {'name': 'Alice', 'age': 20}
d2 = {'name': 'Bob', 'age': 30}
print('{0[name]} is {0[age]} years old.\n{1[name]} is {1[age]} years old.'.format(d1, d2))
# Alice is 20 years old.
# Bob is 30 years old.

এটিকে একটি অবস্থানগত যুক্তি হিসাবে প্রসারিত করা যেতে পারে তালিকায় * যুক্ত করে এবং এটিকে একটি যুক্তি হিসাবে নির্দিষ্ট করে, বা অভিধানে ** যুক্ত করে এবং এটিকে একটি যুক্তি হিসাবে নির্দিষ্ট করে একটি কীওয়ার্ড আর্গুমেন্ট হিসাবে।

l = ['one', 'two', 'three']
print('{}-{}-{}'.format(*l))
# one-two-three

d = {'name': 'Alice', 'age': 20}
print('{name} is {age} years old.'.format(**d))
# Alice is 20 years old.

কোঁকড়া বন্ধনীর বর্ণনা {}

আপনি যদি ফরম্যাট() পদ্ধতিতে কোঁকড়া বন্ধনী {,} লিখতে চান, তাহলে {{,}} এর মতো দুবার পুনরাবৃত্তি করুন। নোট করুন যে ব্যাকস্ল্যাশগুলি এড়ানো যায় না।

print('{{}}-{num}-{{{num}}}'.format(num=100))
# {}-100-{100}

বিন্যাসিত স্ট্রিং

উভয় ক্ষেত্রেই, বিন্যাস নির্দিষ্ট করতে, পূর্ণসংখ্যার মানের পরে “:ফরম্যাট স্ট্রিং” লিখুন বা {} এ নাম স্ট্রিং করুন।

print('{num:x}'.format(num=255))
# ff

print('{day}/{month:02}/{year:02}/'.format(day=11, month=1, year=2018))
# 11/01/2018

নিম্নলিখিত, আমরা ব্যাখ্যা করব কিভাবে একটি ফরম্যাট স্ট্রিং ব্যবহার করে বিন্যাস নির্দিষ্ট করতে হয়। নমুনা কোড স্ট্রিং পদ্ধতি ব্যবহার করে str.format(), কিন্তু একই ফরম্যাট স্ট্রিং বিল্ট-ইন ফাংশন ফরম্যাট() এর সাথে ব্যবহার করা যেতে পারে। বিল্ট-ইন ফাংশন ফরম্যাটে(), ফরম্যাট স্পেসিফিকেশন স্ট্রিং দ্বিতীয় আর্গুমেন্ট হিসেবে নির্দিষ্ট করা হয়।

বাম-জাস্টিফাইড, সেন্টার-জাস্টিফাইড, রাইট-জাস্টিফাইড

আপনি নীচে বাম-জাস্টিফাইড, সেন্টার-জাস্টিফাইড, ডান-জাস্টিফাইড ইত্যাদি সারিবদ্ধ করতে পারেন। একটি সংখ্যা হিসাবে অক্ষরের মোট সংখ্যা নির্দিষ্ট করুন।

  • <
  • ^
  • >
print('left  : {:<10}'.format(100))
print('center: {:^10}'.format(100))
print('right : {:>10}'.format(100))
# left  : 100       
# center:    100    
# right :        100

আপনি পূরণ করার জন্য একটি অক্ষরও নির্দিষ্ট করতে পারেন৷ যদি বাদ দেওয়া হয়, উপরের উদাহরণের মতো, এটি একটি স্থান৷

আপনি ডাবল-বাইট অক্ষর ব্যবহার করতে পারেন যতক্ষণ না এটি একটি একক অক্ষর।

print('left  : {:*<10}'.format(100))
print('center: {:a^10}'.format(100))
print('right : {:鬼>10}'.format(100))
# left  : 100*******
# center: aaa100aaaa
# right : 鬼鬼鬼鬼鬼鬼鬼100

> এর সাথে সঠিক-ন্যায্যতা; চিহ্নটি (-,+) বিবেচনায় নেয় না। আপনি = ব্যবহার করলে, চিহ্নটি নির্দিষ্ট অক্ষর দ্বারা অনুসরণ করা হয়। আপনি যদি + নির্দিষ্ট করতে চান তবে + পরে = লিখুন। সাইন প্রসেসিংয়ের বিশদ বিবরণ পরে বর্ণিত হয়েছে।

print('sign: {:0>10}'.format(-100))
print('sign: {:0=10}'.format(-100))
print('sign: {:0=+10}'.format(100))
# sign: 000000-100
# sign: -000000100
# sign: +000000100

<, ^, এবং > স্ট্রিং এর জন্য নির্দিষ্ট করা যেতে পারে, কিন্তু = এর ফলে ValueError ত্রুটি দেখা দেবে। আপনি যদি একটি স্ট্রিং এর জন্য = ব্যবহার করতে চান তবে আপনাকে int() ব্যবহার করে এটিকে একটি সংখ্যায় রূপান্তর করতে হবে।

# print('sign: {:0=10}'.format('-100'))
# ValueError: '=' alignment not allowed in string format specifier

print('sign: {:0=10}'.format(int('-100')))
# sign: -000000100

ফ্লোটিং-পয়েন্ট সংখ্যার ক্ষেত্রেও একই কথা প্রযোজ্য। দশমিক বিন্দু একটি অক্ষর হিসাবে গণনা করা হয়.

print('left  : {:*<10}'.format(1.23))
print('center: {:a^10}'.format(1.23))
print('right : {:鬼>10}'.format(1.23))
# left  : 1.23******
# center: aaa1.23aaa
# right : 鬼鬼鬼鬼鬼鬼1.23

print('sign: {:0>10}'.format(-1.23))
print('sign: {:0=10}'.format(-1.23))
print('sign: {:0=+10}'.format(1.23))
# sign: 00000-1.23
# sign: -000001.23
# sign: +000001.23

তালিকা, tuples, ইত্যাদি একটি ত্রুটির কারণ হবে যদি নির্দিষ্ট করা হয়, এবং str() ব্যবহার করে স্ট্রিং-এ রূপান্তর করা যেতে পারে।

l = [0, 1]
print(type(l))
# <class 'list'>

# print('{:*^16}'.format(l))
# TypeError: unsupported format string passed to list.__format__

print(type(str(l)))
# <class 'str'>

print('{:*^16}'.format(str(l)))
# *****[0, 1]*****

লেফট-জাস্টিফাইড, সেন্টার-জাস্টিফাইড এবং রাইট-জাস্টিফাইডের জন্য, ljust(), center(), এবং rjust() নামে ডেডিকেটেড স্ট্রিং পদ্ধতিও রয়েছে।

0 পূরণ করুন

আপনি যদি শূন্য-ভর্তি দ্বারা সংখ্যার সংখ্যা সামঞ্জস্য করতে চান, অক্ষরটিকে 0 তে পূরণ করতে সেট করুন এবং এটিকে ডান-জাস্টিফাই করুন।

শূন্য-ভরনের ক্ষেত্রে, যদি প্রান্তিককরণ চিহ্নটি বাদ দেওয়া হয়, তাহলে এটি প্রক্রিয়া করা হয় যেমন = উল্লেখ করা হয়েছে।

print('zero padding: {:0=10}'.format(100))
print('zero padding: {:010}'.format(100))
# zero padding: 0000000100
# zero padding: 0000000100

print('zero padding: {:0=10}'.format(-100))
print('zero padding: {:010}'.format(-100))
# zero padding: -000000100
# zero padding: -000000100

#ত্রুটি!

# print('zero padding: {:010}'.format('-100'))
# ValueError: '=' alignment not allowed in string format specifier

জিরো-ফিলিং এর জন্য, zfill() নামে একটি ডেডিকেটেড স্ট্রিং পদ্ধতিও রয়েছে।

চিহ্ন (প্লাস বা বিয়োগ)

ডিফল্টরূপে, শুধুমাত্র ঋণাত্মক সংখ্যা একটি চিহ্ন (মাইনাস-) দিয়ে চিহ্নিত করা হয়।

ফরম্যাটিং স্পেসিফিকেশন স্ট্রিং-এ যখন + যোগ করা হয়, তখন ইতিবাচক সংখ্যার জন্য একটি চিহ্ন (প্লাস +)ও প্রদর্শিত হয়। যদি একটি স্থান যোগ করা হয়, তাহলে ধনাত্মক সংখ্যার শুরুতে একটি স্পেস প্রদর্শিত হয় এবং সংখ্যার সংখ্যা ঋণাত্মক সংখ্যার সাথে সারিবদ্ধ হয়।

print('sign: {}'.format(100))
print('sign: {}'.format(-100))
# sign: 100
# sign: -100

print('sign: {:+}'.format(100))
print('sign: {:+}'.format(-100))
# sign: +100
# sign: -100

print('sign: {: }'.format(100))
print('sign: {: }'.format(-100))
# sign:  100
# sign: -100

উপরে উল্লিখিত শূন্য-পূরণের মতো নির্বিচারে অক্ষরগুলি পূরণ করার সময় সতর্কতা অবলম্বন করুন। ডিফল্ট, কোন + এবং কোন স্পেস ছাড়াই, আরও একটি অক্ষর দিয়ে ধনাত্মক সংখ্যা পূরণ করে।

print('sign: {:06}'.format(100))
print('sign: {:06}'.format(-100))
# sign: 000100
# sign: -00100

print('sign: {:+06}'.format(100))
print('sign: {:+06}'.format(-100))
# sign: +00100
# sign: -00100

print('sign: {: 06}'.format(100))
print('sign: {: 06}'.format(-100))
# sign:  00100
# sign: -00100

যদি একটি প্রান্তিককরণ চিহ্ন ব্যবহার করা হয়, তাহলে সাইন উপাধি চিহ্নটি প্রান্তিককরণ চিহ্নের পরে লিখতে হবে।

print('sign: {:_>6}'.format(100))
print('sign: {:_>6}'.format(-100))
# sign: ___100
# sign: __-100

print('sign: {:_>+6}'.format(100))
print('sign: {:_>+6}'.format(-100))
# sign: __+100
# sign: __-100

print('sign: {:_> 6}'.format(100))
print('sign: {:_> 6}'.format(-100))
# sign: __ 100
# sign: __-100

সংখ্যা বিভাজক (কমা, আন্ডারস্কোর)

প্রতি তিন অঙ্কে একটি কমা বা আন্ডারস্কোর _ বিভাজক যোগ করুন। এটি বড় সংখ্যা পড়তে সহজ করে তোলে। মনে রাখবেন যে আন্ডারস্কোর_ পাইথন 3.6 এ যোগ করা একটি বিকল্প, তাই এটি আগের সংস্করণগুলিতে ব্যবহার করা যাবে না।

print('{:,}'.format(100000000))
# 100,000,000

print('{:_}'.format(100000000))
# 100_000_000

ফ্লোটিং-পয়েন্ট নম্বর ফ্লোট প্রকারের ক্ষেত্রে, শুধুমাত্র পূর্ণসংখ্যা অংশটি সীমাবদ্ধ করা হয়।

print('{:,}'.format(1234.56789))
# 1,234.56789

বাইনারি, অক্টাল এবং হেক্সাডেসিমেল সংখ্যা

আউটপুটের জন্য সংখ্যাসূচক মানকে বাইনারি, অক্টাল এবং হেক্সাডেসিমেল সংখ্যায় রূপান্তর করে।

  • b: বাইনারি
  • o: অক্টাল
  • d: দশমিক
  • x,X: হেক্সাডেসিমেল (বড় হাতের অক্ষর বড় হাতের লেখা)
print('bin: {:b}'.format(255))
print('oct: {:o}'.format(255))
print('dec: {:d}'.format(255))
print('hex: {:x}'.format(255))
print('HEX: {:X}'.format(255))
# bin: 11111111
# oct: 377
# dec: 255
# hex: ff
# HEX: FF

এটি 0-ভরনের সাথেও মিলিত হতে পারে এবং এটি প্রায়শই বাইনারি এবং হেক্সাডেসিমেল স্বরলিপিতে অঙ্কগুলি সারিবদ্ধ করতে ব্যবহৃত হয়।

print('bin: {:08b}'.format(255))
print('oct: {:08o}'.format(255))
print('dec: {:08d}'.format(255))
print('hex: {:08x}'.format(255))
print('HEX: {:08X}'.format(255))
# bin: 11111111
# oct: 00000377
# dec: 00000255
# hex: 000000ff
# HEX: 000000FF

মনে রাখবেন যে উপসর্গটি বিবেচনায় রেখে শূন্য-পূর্ণ অক্ষরের সংখ্যা অবশ্যই নির্দিষ্ট করতে হবে।

print('bin: {:#010b}'.format(255))
print('oct: {:#010o}'.format(255))
print('dec: {:#010d}'.format(255))
print('hex: {:#010x}'.format(255))
print('HEX: {:#010X}'.format(255))
# bin: 0b11111111
# oct: 0o00000377
# dec: 0000000255
# hex: 0x000000ff
# HEX: 0X000000FF

বাইনারি এবং হেক্সাডেসিমেল সংখ্যার জন্য, শুধুমাত্র আন্ডারস্কোর _ ডিজিট বিভাজক সন্নিবেশ করা যেতে পারে (পাইথন 3.6 বা পরবর্তী)। 4-সংখ্যা বিভাজক ব্যবহার করা হয়; শূন্য-ভরা অক্ষরের সংখ্যাকে অবশ্যই আন্ডারস্কোরের সংখ্যা বিবেচনা করতে হবে।

print('hex: {:08x}'.format(255))
print('hex: {:09_x}'.format(255))
print('hex: {:#011_x}'.format(255))
# hex: 000000ff
# hex: 0000_00ff
# hex: 0x0000_00ff

শুধুমাত্র পূর্ণসংখ্যা টাইপ int ফরম্যাটটিকে বাইনারি বা হেক্সাডেসিমেলে রূপান্তর করতে পারে। আপনি এটিকে একটি সংখ্যায় রূপান্তর করতে int() ব্যবহার করতে পারেন।

# print('hex: {:08x}'.format('255'))
# ValueError: Unknown format code 'X' for object of type 'str'

print('hex: {:08x}'.format(int('255')))
# hex: 000000ff

দশমিক বিন্দুর পরে সংখ্যার সংখ্যা উল্লেখ করুন

দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করতে, নিম্নলিখিতগুলি করুন: n হল সংখ্যার সংখ্যা। পূর্ণসংখ্যার অংশে সংখ্যার সংখ্যা নির্বিশেষে দশমিক বিন্দুর পরে অঙ্কের সংখ্যাটি সংখ্যার নির্দিষ্ট সংখ্যা হয়ে যায়।
.[n]f

print('{:.2f}'.format(123.456))
print('{:.5f}'.format(123.456))
print('{:.3f}'.format(0.0001234))
# 123.46
# 123.45600
# 0.000

দশমিক বিন্দুর বাম দিকটি উপরে বর্ণিত হিসাবে বাম-জাস্টিফাইড, সেন্টার-জাস্টিফাইড, ডান-জাস্টিফাইড বা শূন্য-পূর্ণ হিসাবে নির্দিষ্ট করা যেতে পারে। লক্ষ্য মানের সংখ্যার সংখ্যা নির্দিষ্ট সংখ্যার চেয়ে বেশি হলে, কিছুই করা হয় না। লক্ষ্য মানের সংখ্যার সংখ্যা নির্দিষ্ট সংখ্যার চেয়ে বেশি হলে, কিছুই করা হয় না।

print('{:>12.5f}'.format(123.456))
print('{:012.5f}'.format(123.456))
print('{:06.5f}'.format(123.456))
#    123.45600
# 000123.45600
# 123.45600

আপনি যদি দশমিক বিন্দুর পরে সংখ্যার মূল সংখ্যার চেয়ে কম সংখ্যার সংখ্যা নির্দিষ্ট করেন, তাহলে মানটি বৃত্তাকার হবে। মনে রাখবেন যে এটি নিকটতম পূর্ণ সংখ্যার সাথে রাউন্ডিং নয়, একটি জোড় সংখ্যায়, যেমন 0.5 কে 0 এ রাউন্ড করা হয়েছে।

print('{:.0f}'.format(0.4))
print('{:.0f}'.format(0.5))
print('{:.0f}'.format(0.6))
# 0
# 0
# 1

আপনি যদি সাধারণ রাউন্ডিং ব্যবহার করতে চান তবে আপনি স্ট্যান্ডার্ড লাইব্রেরি দশমিকের quantize() পদ্ধতি ব্যবহার করতে পারেন।

সূচকীয় স্বরলিপি

যখন একটি ফ্লোটিং-পয়েন্ট ফ্লোট নম্বর একটি স্ট্রিং স্ট্র-এ রূপান্তরিত হয়, তখন এটি সংখ্যার সংখ্যার উপর নির্ভর করে স্বয়ংক্রিয়ভাবে সূচকীয় স্বরলিপিতে লেখা হবে। পূর্ণসংখ্যা টাইপ int না.

print('{}'.format(0.0001234))
print('{}'.format(0.00001234))
# 0.0001234
# 1.234e-05

print('{}'.format(1234000000000000.0))
print('{}'.format(12340000000000000.0))
print('{}'.format(12340000000000000000000000))
# 1234000000000000.0
# 1.234e+16
# 12340000000000000000000000

আপনি যদি ফরম্যাটিং স্পেসিফিকেশন স্ট্রিং-এ e বা E উল্লেখ করেন, আপনি সর্বদা সূচকীয় স্বরলিপিতে রূপান্তর করতে পারেন। আউটপুটে ব্যবহৃত অক্ষরগুলি যথাক্রমে e এবং E হবে।

print('{:e}'.format(0.0001234))
print('{:E}'.format(0.0001234))
# 1.234000e-04
# 1.234000E-04

দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করাও সম্ভব। পূর্ণসংখ্যার অংশটি সর্বদা এক অঙ্কের হবে এবং দশমিক বিন্দুটি হবে নির্দিষ্ট সংখ্যার সংখ্যা।

print('{:.5e}'.format(0.0001234))
print('{:.2E}'.format(0.0001234))
# 1.23400e-04
# 1.23E-04

print('{:.5e}'.format(987.65))
print('{:.2E}'.format(987.65))
# 9.87650e+02
# 9.88E+02

মনে রাখবেন যে যদি আপনি লেফট-জাস্টিফাইড, সেন্টার-জাস্টিফাইড, ডান-জাস্টিফাইড, বা শূন্য-পূর্ণ, e-, E+, ইত্যাদি উল্লেখ করেন তাহলেও সংখ্যা (অক্ষর) হিসাবে গণনা করা হবে।

print('{:>12.5e}'.format(987.65))
print('{:012.2E}'.format(987.65))
#  9.87650e+02
# 00009.88E+02

উল্লেখযোগ্য পরিসংখ্যান (গুরুত্বপূর্ণ সংখ্যার সংখ্যা)

আপনি নিম্নলিখিতগুলি করে অঙ্কের সামগ্রিক সংখ্যা নির্দিষ্ট করতে পারেন ফলাফলের উপর নির্ভর করে, সূচকীয় স্বরলিপি স্বয়ংক্রিয়ভাবে ব্যবহার করা হবে। লক্ষ্য করুন যে দশমিক বিন্দুর পরের শূন্য বাদ দেওয়া হবে।
.[n]g

print('{:.2g}'.format(123.456))
print('{:.3g}'.format(123.456))
print('{:.8g}'.format(123.456))
print('{:.3g}'.format(0.0001234))
# 1.2e+02
# 123
# 123.456
# 0.000123

আপনি যদি g বাদ দেন, আউটপুট একটি পূর্ণসংখ্যা হবে না। g বেশিরভাগ ক্ষেত্রে একই, কিন্তু শুধুমাত্র সেই ক্ষেত্রে যেখানে আউটপুট একটি পূর্ণসংখ্যা।

print('{:.2}'.format(123.456))
print('{:.3}'.format(123.456))
print('{:.8}'.format(123.456))
print('{:.3}'.format(0.0001234))
# 1.2e+02
# 1.23e+02
# 123.456
# 0.000123

যদি আমরা একই মান প্রক্রিয়া করি, আমরা যথাক্রমে নিম্নলিখিতটি পাই।

print('{:.3f}'.format(123.456))
print('{:.3e}'.format(123.456))
print('{:.3g}'.format(123.456))
print('{:.3}'.format(123.456))
# 123.456
# 1.235e+02
# 123
# 1.23e+02

print('{:.8f}'.format(123.456))
print('{:.8e}'.format(123.456))
print('{:.8g}'.format(123.456))
print('{:.8}'.format(123.456))
# 123.45600000
# 1.23456000e+02
# 123.456
# 123.456

g এর ক্ষেত্রে বা যদি এটি বাদ দেওয়া হয়, দশমিক বিন্দুর পরের শূন্যগুলি বাদ দেওয়া হয়, তাই আপনি যদি একই সংখ্যক উল্লেখযোগ্য পরিসংখ্যান (উল্লেখযোগ্য অঙ্কের সংখ্যা) আউটপুট করতে চান, তাহলে e বা E-এর সূচকীয় স্বরলিপি ব্যবহার করুন। পূর্ণসংখ্যার অংশটি সর্বদা একটি সংখ্যা এবং দশমিক বিন্দু হল নির্দিষ্ট সংখ্যার সংখ্যা, তাই আপনি যদি n উল্লেখযোগ্য সংখ্যাগুলি আউটপুট করতে চান তবে শুধুমাত্র n-1 উল্লেখ করুন।

print('{:.4e}'.format(123.456))
print('{:.4e}'.format(0.000012345))
print('{:.4e}'.format(12))
# 1.2346e+02
# 1.2345e-05
# 1.2000e+01

শতাংশ প্রদর্শন

যদি % ফর্ম্যাটিং স্পেসিফিকেশন স্ট্রিং-এ নির্দিষ্ট করা থাকে, তাহলে সাংখ্যিক ফ্লোট বা int-এর মান 100 দ্বারা গুণিত হয় এবং % দিয়ে একটি স্ট্রিং-এ রূপান্তরিত হয়।

দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করাও সম্ভব। দশমিক বিন্দুর পরে ডিফল্ট ছয় সংখ্যা। লেফট-জাস্টিফাই, সেন্টার-জাস্টিফাই, রাইট-জাস্টিফাই এবং জিরো-ফিলও উপলব্ধ। %কেও একটি অক্ষর হিসাবে গণনা করা হয়।

print('{:%}'.format(0.12345))
print('{:.2%}'.format(0.12345))
# 12.345000%
# 12.35%

print('{:%}'.format(10))
print('{:.2%}'.format(10))
# 1000.000000%
# 1000.00%

print('{:>7.2%}'.format(0.12345))
print('{:07.2%}'.format(0.12345))
#  12.35%
# 012.35%
Copied title and URL