ازگر میں فارمیٹ کی تبدیلی، فارمیٹ (زیرو فلنگ، ایکسپونینشل اشارے، ہیکساڈیسیمل وغیرہ)

کاروبار

Python میں کسی نمبر یا سٹرنگ کو مختلف فارمیٹس میں تبدیل کرنے کے لیے، بلٹ ان فنکشن فارمیٹ() یا سٹرنگ میتھڈ str.format() استعمال کریں۔

اس سیکشن میں، ہم مندرجہ ذیل فنکشنز کو استعمال کرنے کا طریقہ بتائیں گے۔

  • بلٹ ان فنکشن (مثال کے طور پر پروگرامنگ زبان میں)format()
  • تار کا طریقہstr.format()

اس کے علاوہ، مندرجہ ذیل فارمیٹ میں تبدیل کرنے کے لیے فارمیٹ کی تفصیلات کی سٹرنگ کو نمونہ کوڈ کے ساتھ بیان کیا گیا ہے۔

  • بائیں بازو کا جواز، مرکز کا جواز، حق کا جواز
  • صفر بھرنا
  • نشان (جمع یا مائنس)
  • ہندسوں سے جدا کرنے والا (کوما، انڈر سکور)
  • بائنری، آکٹل اور ہیکسا ڈیسیمل نمبرز
  • اعشاریہ کے بعد ہندسوں کی تعداد کی وضاحت کریں۔
  • اہم اعداد و شمار (اہم ہندسوں کی تعداد)
  • کفایتی اشارے
  • فیصد ڈسپلے

نوٹ کریں کہ Python 3.6 کے بعد سے، f-strings (f-strings) کو اسٹرنگ میتھڈ str.format() میں مزید جامع بنانے کے لیے شامل کیا گیا ہے۔

بلٹ ان فنکشن: فارمیٹ()

format() ایک معیاری Python بلٹ ان فنکشن کے طور پر فراہم کی گئی ہے۔

خاکہ درج ذیل ہے۔

  • format(value, format_spec)
    • پہلی دلیل:value
      اصل قدر۔ سٹرنگ str، نمبر انٹ، فلوٹ، وغیرہ۔
    • دوسری دلیلformat_spec
      فارمیٹ تفصیلات کی تار۔ سٹرنگ str
    • واپسی قدر: ایک فارمیٹ شدہ سٹرنگ str

مثالیں ذیل میں دکھائی گئی ہیں۔ فارمیٹ کے تاروں کی اقسام اور انہیں لکھنے کا طریقہ بعد میں بیان کیا جائے گا۔

اس مثال میں، ہم نے عددی لٹریلز اور سٹرنگ لٹریلز کو پہلی دلیل کے طور پر استعمال کیا ہے، لیکن یقیناً آپ متغیرات کو استعمال کر سکتے ہیں جن میں یہ قدریں ہیں۔

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

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

اسٹرنگ کا طریقہ str.format()

سٹرنگ کی قسم کے لیے ایک فارمیٹ() طریقہ بھی ہے۔

اسٹرنگ str میں {} جو format() طریقہ کو کال کرتا ہے اسے متبادل فیلڈ کہا جاتا ہے، اور اسے 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.

گھوبگھرالی بریکٹ کی تفصیل {}

اگر آپ کرلی بریکٹ {,} کو format() طریقہ میں لکھنا چاہتے ہیں تو اسے دو بار دہرائیں جیسے {{,}}۔ نوٹ کریں کہ بیک سلیشز سے بچ نہیں سکتا۔

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

فارمیٹ شدہ تار

دونوں صورتوں میں، فارمیٹ کی وضاحت کرنے کے لیے، {} میں عددی قدر یا نام کی سٹرنگ کے بعد ":format string” لکھیں۔

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

فہرستیں، ٹیپلز، وغیرہ ایک خرابی کا سبب بنیں گے اگر اس کی وضاحت کی گئی ہے، اور 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

ہندسوں سے جدا کرنے والا (کوما، انڈر سکور)

ہر تین ہندسوں پر ایک کوما یا انڈر سکور _ الگ کرنے والا شامل کریں۔ یہ بڑی تعداد کو پڑھنے میں آسان بناتا ہے۔ نوٹ کریں کہ underscore_ ایک آپشن ہے جو Python 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-fill کے ساتھ بھی ملایا جا سکتا ہے، اور اکثر بائنری اور ہیکسا ڈیسیمل اشارے میں ہندسوں کو سیدھ میں لانے کے لیے استعمال ہوتا ہے۔

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

بائنری اور ہیکسا ڈیسیمل نمبرز کے لیے، صرف انڈر سکور _ ہندسوں کو الگ کرنے والا داخل کیا جا سکتا ہے (Python 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

اگر آپ جنرل راؤنڈنگ استعمال کرنا چاہتے ہیں، تو آپ معیاری لائبریری اعشاریہ کا کوانٹائز() طریقہ استعمال کر سکتے ہیں۔

کفایتی اشارے

جب ایک فلوٹنگ پوائنٹ فلوٹ نمبر کو سٹرنگ str میں تبدیل کیا جاتا ہے، تو یہ ہندسوں کی تعداد کے لحاظ سے خود بخود ایکسپونینشل اشارے میں لکھا جائے گا۔ انٹیجر ٹائپ 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 زیادہ تر معاملات میں یکساں ہے، لیکن صرف ان صورتوں میں جہاں آؤٹ پٹ ایک عدد عدد ہے۔

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

جی کی صورت میں یا اگر اسے چھوڑ دیا جاتا ہے تو، اعشاریہ کے بعد پیچھے آنے والے صفر کو چھوڑ دیا جاتا ہے، لہذا اگر آپ اہم اعداد و شمار کی ایک ہی تعداد (اہم ہندسوں کی تعداد) کو آؤٹ پٹ کرنا چاہتے ہیں، تو 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 سے ضرب دے کر % کے ساتھ سٹرنگ میں تبدیل کر دیا جاتا ہے۔

اعشاریہ کے بعد ہندسوں کی تعداد بتانا بھی ممکن ہے۔ ڈیفالٹ اعشاریہ کے بعد چھ ہندسوں کا ہے۔ Left-justify، center-justify، right-justify، اور zero-fill بھی دستیاب ہیں۔ % کو بھی ایک کردار کے طور پر شمار کیا جاتا ہے۔

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