दिया हुआ:
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
( डॉक्स देखें )।
पायथन 3. + के लिए, एक ही व्यवहार भी प्राप्त किया जा सकता है format
:
print("{:02d}".format(1))
पायथन 3.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'))
नए स्वरूपण कार्यों के लिए PEP-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 , आप संक्षेप नई च-तार का उपयोग करके शुरू किए गए थे के साथ ऐसा कर सकते हैं:
f'{val:02}'
जो चर को val
a और a के 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/typesseq-strings.html
उदाहरण के लिए:
python -c 'print "%(num)02d" % {"num":5}'
यह मेरा इसे करने का तरीका है:
str(1).zfill(len(str(total)))
मूल रूप से zfill अग्रणी शून्य की संख्या लेता है जिसे आप जोड़ना चाहते हैं, इसलिए सबसे बड़ी संख्या लेना आसान है, इसे एक स्ट्रिंग में बदल दें और लंबाई प्राप्त करें, जैसे:
पायथन 3.6.5 (डिफ़ॉल्ट, 11 मई 2018, 04:00:52) [जीसीसी 8.1.0] लिनक्स पर अधिक जानकारी के लिए "सहायता", "कॉपीराइट", "क्रेडिट" या "लाइसेंस" टाइप करें। >>> कुल = 100 >>> प्रिंट (str (1)। zfill (len (str (कुल)))) 001 >>> कुल = 1000 >>> प्रिंट (str (1)। zfill (len (str (कुल)))) 0001 >>> कुल = 10000 >>> प्रिंट (str (1)। zfill (len (str (कुल)))) 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-nthth/