2013-08-11 12 views
5

यह एक वैध अजगर प्रारूप स्ट्रिंग है:एक पाइथन प्रारूप स्ट्रिंग में 'एच' का क्या अर्थ है?

>>> wierd_format = '[%27he]' 
>>> print wierd_format % 2.5 
[  2.500000e+00] 

लेकिन यह नहीं है:

>>> bad_format = '[%20qe]' 
>>> print bad_format % 2.5 
Traceback (most recent call last): 
    File "prog.py", line 5, in <module> 
    print bad_format % 2.5 
ValueError: unsupported format character 'q' (0x71) at index 4 

जाहिर है, h एक समर्थित प्रारूप चरित्र है। हालांकि, documentation में h विनिर्देशक का उल्लेख नहीं है। यह क्या करता है?

+0

[ideone दिखा वैधता] (http://ideone.com/EfhqWK) – Eric

उत्तर

4
डॉक्स से

:

एक लंबाई संशोधक (h, l, या L) मौजूद हो सकता है, लेकिन ध्यान नहीं दिया जाता के रूप में यह अजगर के लिए आवश्यक नहीं है - तो जैसे %ld%d के समान है।

+0

जाहिर है अंधा। धन्यवाद – Eric

+0

कोई समस्या नहीं, होता है :) –

3

Python Docs कहता है कि यह एक लम्बाई संशोधक है।

एक लम्बाई संशोधक (एच, एल, या एल) मौजूद हो सकता है, लेकिन इसे अनदेखा किया जाता है क्योंकि यह पायथन के लिए आवश्यक नहीं है। तो उदा। % ld% d के समान है।

वे एक ही लग रहे हैं

>>> "[%he]" %2.5 
'[2.500000e+00]' 
>>> "[%le]" %2.5 
'[2.500000e+00]' 
>>> "[%Le]" %2.5 
'[2.500000e+00]' 
+0

अरे, मैं अंधा हूं। वह दस्तावेज लिंक मेरे मुकाबले ज्यादा पुराना है, लेकिन दोनों में स्ट्रिंग – Eric

+0

@Eric: धन्यवाद है। इसे नए में अपडेट किया गया। :) –

+1

@Eric: मुझे टीसीएल में 'एच' संशोधक भी मिल सकता है। यहां एक रिश्ता हो सकता है, लेकिन, सुनिश्चित नहीं है। यहां [लिंक] है (http://www.tcl.tk/man/tcl8.4/TclCmd/format.htm)। उद्धृत -> 'यदि यह एच है तो यह निर्दिष्ट करता है कि संख्यात्मक मान को परिवर्तित करने से पहले 16-बिट मान पर छोटा किया जाना चाहिए।' –

संबंधित मुद्दे