প্রদত্ত:
a = 1
b = 10
c = 100
আমি কীভাবে দুটি সংখ্যার কম সংখ্যার সাথে সমস্ত সংখ্যার জন্য একটি শূন্যস্থান প্রদর্শন করব?
এই আউটপুটটি আমি প্রত্যাশা করছি:
01
10
100
প্রদত্ত:
a = 1
b = 10
c = 100
আমি কীভাবে দুটি সংখ্যার কম সংখ্যার সাথে সমস্ত সংখ্যার জন্য একটি শূন্যস্থান প্রদর্শন করব?
এই আউটপুটটি আমি প্রত্যাশা করছি:
01
10
100
উত্তর:
পাইথন 2 (এবং পাইথন 3) এ আপনি করতে পারেন:
print "%02d" % (1,)
মূলত % এর মত printf
বা sprintf
( ডক্স দেখুন )।
পাইথন ৩. এর জন্যও একই আচরণটি এর সাথে অর্জন করা যেতে পারে format
:
print("{:02d}".format(1))
পাইথন ৩.6+ এর জন্য এফ-স্ট্রিংয়ের মাধ্যমে একই আচরণ অর্জন করা যেতে পারে :
print(f"{1:02d}")
x = "%02d.txt" % i
TypeError উত্থাপন করে ('str' এবং 'int' অবজেক্টগুলিকে একত্রিত করতে পারে না), কিন্তু x = "%02d.txt" % (i,)
হয় না। মজাদার. আমি আশ্চর্য হয়েছি যে কোথায় এটি নথিভুক্ত হয়েছে
%
স্ট্রিং ফরমেটার ব্যবহারের সময় একটি টুপলে সিঙ্গল ভেরিয়েবল স্থাপন করা আপনাকে নিরাপদ দিকে নিয়ে যায় ।
আপনি ব্যবহার করতে পারেন str.zfill
:
print(str(1).zfill(2))
print(str(10).zfill(2))
print(str(100).zfill(2))
কপি করে প্রিন্ট:
01
10
100
"{1:02d}"
জায়গায় ভেরিয়েবল থাকতে পারে না 2
(যেমন আপনি যদি একটি গতিশীল ফাংশন তৈরি করছেন)।
পাইথন 2.6+ এবং 3.0+ এ আপনি format()
স্ট্রিং পদ্ধতিটি ব্যবহার করবেন :
for i in (1, 10, 100):
print('{num:02d}'.format(num=i))
বা বিল্ট-ইন ব্যবহার করে (একক সংখ্যার জন্য):
print(format(i, '02d'))
নতুন ফর্ম্যাটিং ফাংশনগুলির জন্য পিইপি -3101 ডকুমেন্টেশন দেখুন ।
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
কপি করে প্রিন্ট:
01
10
100
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)
print '{:02}'.format(1)
ইন পাইথন> = 3.6 , আপনি succinctly নতুন F-স্ট্রিং যে ব্যবহার করে চালু হয় সঙ্গে এই কাজ করতে পারেন:
f'{val:02}'
যা নামের সঙ্গে পরিবর্তনশীল ছাপে val
একটি সঙ্গে fill
মান 0
এবং width
এর2
।
আপনার নির্দিষ্ট উদাহরণের জন্য আপনি লুপে এটি দুর্দান্তভাবে করতে পারেন:
a, b, c = 1, 10, 100
for val in [a, b, c]:
print(f'{val:02}')
যা প্রিন্ট করে:
01
10
100
এফ-স্ট্রিং সম্পর্কিত আরও তথ্যের জন্য, PEP 498 এ সেগুলি চালু করা হয়েছে তা একবার দেখুন।
x = [1, 10, 100]
for i in x:
print '%02d' % i
ফলাফল স্বরূপ:
01
10
100
ডকুমেন্টেশনে % ব্যবহার করে স্ট্রিং ফর্ম্যাটিং সম্পর্কে আরও তথ্য পড়ুন ।
বা অন্য সমাধান।
"{:0>2}".format(number)
"{0:0>2}".format(number)
, যদি কেউ nLeadingZeros চায় তবে তারাও তাদের লক্ষ্য করা উচিত:"{0:0>{1}}".format(number, nLeadingZeros + 1)
একটি ফর্ম্যাট স্ট্রিং ব্যবহার করুন - http://docs.python.org/lib/tyypeseq-strings.html
উদাহরণ স্বরূপ:
python -c 'print "%(num)02d" % {"num":5}'
আমি এটি এইভাবে করি:
str(1).zfill(len(str(total)))
মূলত জিলফিল আপনার যোগ করতে চায় এমন শীর্ষস্থানীয় শূন্যগুলির সংখ্যা নেয়, তাই সবচেয়ে বড় সংখ্যাটি নেওয়া, স্ট্রিংয়ে পরিণত করা এবং দৈর্ঘ্য পাওয়া খুব সহজ:
পাইথন 3.6.5 (ডিফল্ট, মে 11 2018, 04:00:52) [জিসিসি 8.1.0] লিনাক্সে আরও তথ্যের জন্য "সহায়তা", "কপিরাইট", "ক্রেডিট" বা "লাইসেন্স" টাইপ করুন। >>> মোট = 100 >>> মুদ্রণ (টিআর (1) .জফিল (লেন (আরআর (মোট))) ২001 >>> মোট = 1000 >>> মুদ্রণ (টিআর (1) .জফিল (লেন (আরআর (মোট))) 0001 >>> মোট = 10000 >>> মুদ্রণ (টিআর (1) .জফিল (লেন (আরআর (মোট))) 00001 >>>
আপনি এফ স্ট্রিং দিয়ে এটি করতে পারেন ।
import numpy as np
print(f'{np.random.choice([1, 124, 13566]):0>8}')
এটি 8 টির ধ্রুবক দৈর্ঘ্যের মুদ্রণ করবে এবং বাকী অংশটি অগ্রণী সহ প্যাড করবে 0
।
00000001
00000124
00013566
df['Col1']=df['Col1'].apply(lambda x: '{0:0>5}'.format(x))
5 টি হ'ল মোট অঙ্কের সংখ্যা।
আমি এই লিঙ্কটি ব্যবহার করেছি: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/