पायथन में तार के लिए संख्याओं को प्रारूपित करें


112

मुझे यह पता लगाने की आवश्यकता है कि स्ट्रिंग्स के रूप में संख्याओं को कैसे प्रारूपित किया जाए। मेरा कोड यहाँ है:

return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm

घंटे और मिनट पूर्णांक हैं, और सेकंड एक फ्लोट है। str () फ़ंक्शन इन सभी नंबरों को दसवें (0.1) स्थान में बदल देगा। इसलिए मेरे स्ट्रिंग आउटपुट "5: 30: 59.07 pm" के बजाय, यह "5.0: 30.0: 59.1 pm" जैसा कुछ प्रदर्शित करेगा।

निचला रेखा, मेरे लिए यह करने के लिए कौन सी लाइब्रेरी / फ़ंक्शन चाहिए?

जवाबों:


138

पायथन 3.6 के साथ शुरू, पायथन में स्वरूपण स्ट्रिंग स्ट्रिंग शाब्दिक या एफ- स्ट्रिंग्स का उपयोग करके किया जा सकता है :

hours, minutes, seconds = 6, 56, 33
f'{hours:02}:{minutes:02}:{seconds:02} {"pm" if hours > 12 else "am"}'

या str.format2.7 से शुरू होने वाला फ़ंक्शन:

"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")

या पायथन के पुराने संस्करणों के लिए स्ट्रिंग स्वरूपण %ऑपरेटर , लेकिन डॉक्स में नोट देखें:

"%02d:%02d:%02d" % (hours, minutes, seconds)

और प्रारूपण समय के अपने विशिष्ट मामले के लिए, वहाँ है time.strftime:

import time

t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0)
time.strftime('%I:%M:%S %p', t)

96

पायथन 2.6 में शुरू, एक विकल्प है: str.format()विधि। यहां मौजूदा स्ट्रिंग प्रारूप ऑपरेटर ( %) का उपयोग करके कुछ उदाहरण दिए गए हैं :

>>> "Name: %s, age: %d" % ('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: %d/oct: %#o/hex: %#X' % (i, i, i) 
'dec: 45/oct: 055/hex: 0X2D' 
>>> "MM/DD/YY = %02d/%02d/%02d" % (12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: $%.2f' % (13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/%(web)s/%(page)d.html' % d 
'http://xxx.yyy.zzz/user/42.html' 

यहां समान स्निपेट दिए गए हैं, लेकिन उपयोग कर रहे हैं str.format():

>>> "Name: {0}, age: {1}".format('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: {0}/oct: {0:#o}/hex: {0:#X}'.format(i) 
'dec: 45/oct: 0o55/hex: 0X2D' 
>>> "MM/DD/YY = {0:02d}/{1:02d}/{2:02d}".format(12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: ${0:.2f}'.format(13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/{web}/{page}.html'.format(**d) 
'http://xxx.yyy.zzz/user/42.html'

पायथन 2.6+ की तरह, सभी पायथन 3 रिलीज़ (अब तक) दोनों को कैसे करना है, यह समझते हैं। मैंने बेशर्मी से अपनी कट्टर पायथन इंट्रो बुक से सीधे इस सामान को निकाल दिया और इंट्रो + इंटरमीडिएट पायथन पाठ्यक्रमों के लिए स्लाइड जो मैं समय-समय पर पेश करता हूं:-)

अगस्त 2018 अद्यतन : बेशक, अब हमारे पास 3.6 में एफ-स्ट्रिंग सुविधा है , हमें इसके समान उदाहरणों की आवश्यकता है है , हाँ अन्य विकल्प:

>>> name, age = 'John', 35
>>> f'Name: {name}, age: {age}'
'Name: John, age: 35'

>>> i = 45
>>> f'dec: {i}/oct: {i:#o}/hex: {i:#X}'
'dec: 45/oct: 0o55/hex: 0X2D'

>>> m, d, y = 12, 7, 41
>>> f"MM/DD/YY = {m:02d}/{d:02d}/{y:02d}"
'MM/DD/YY = 12/07/41'

>>> f'Total with tax: ${13.00 * 1.0825:.2f}'
'Total with tax: $14.07'

>>> d = {'web': 'user', 'page': 42}
>>> f"http://xxx.yyy.zzz/{d['web']}/{d['page']}.html"
'http://xxx.yyy.zzz/user/42.html'

8

अजगर 2.6+

format()फ़ंक्शन का उपयोग करना संभव है , इसलिए आपके मामले में आप उपयोग कर सकते हैं:

return '{:02d}:{:02d}:{:.2f} {}'.format(hours, minutes, seconds, ampm)

इस फ़ंक्शन का उपयोग करने के कई तरीके हैं, इसलिए आगे की जानकारी के लिए आप दस्तावेज़ की जांच कर सकते हैं

अजगर 3.6+

f-strings एक नई विशेषता है जिसे पायथन 3.6 में भाषा में जोड़ा गया है। यह स्ट्रिंग्स को कुख्यात बनाने की सुविधा देता है:

return f'{hours:02d}:{minutes:02d}:{seconds:.2f} {ampm}'


1

आप वांछित कार्यक्षमता प्राप्त करने के लिए निम्नलिखित का उपयोग कर सकते हैं

"%d:%d:d" % (hours, minutes, seconds)

1

आप स्ट्रिंग को किसी भी ऑब्जेक्ट को पहचानने के लिए str.format () का उपयोग कर सकते हैं।


0

एक पूर्णांक पर अजगर () में नहीं होगा किसी भी दशमलव स्थानों को मुद्रित ।

यदि आपके पास एक फ्लोट है जिसे आप दशमलव भाग को अनदेखा करना चाहते हैं, तो आप str (int (floatValue)) का उपयोग कर सकते हैं।

शायद निम्नलिखित कोड प्रदर्शित करेगा:

>>> str(5)
'5'
>>> int(8.7)
8

0

यदि आपके पास एक मान है जिसमें एक दशमलव शामिल है, लेकिन दशमलव मान नगण्य है (यानी: 100.0) और इसे int करने का प्रयास करें, तो आपको एक त्रुटि मिलेगी। यह मूर्खतापूर्ण लगता है, लेकिन फ्लोट को कॉल करना सबसे पहले इसे ठीक करता है।

str (पूर्णांक (नाव ([चर])))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.