पायथन में 0x के बिना हेक्स () का उपयोग कैसे करें?


92

hex()अजगर में समारोह, प्रमुख पात्रों डालता 0xसंख्या के सामने। वहाँ वैसे भी यह बताने के लिए उन्हें डाल करने के लिए नहीं है? तो 0xfa230होगा fa230।

कोड है

import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
   f.write(hex(int(line)))
   f.write('\n')

2
आप स्लाइस कर सकते हैं 0x।
— अश्विनी चौधरी

3
@ अश्विनीचौधरी मुझे लगता है कि वह अनिवार्य रूप से पूछ रहे हैं कि कैसे 0x का टुकड़ा करें
— मेरा

जवाबों:



58

इस कोड का उपयोग करें:

'{:x}'.format(int(line))

यह आपको कई अंकों को भी निर्दिष्ट करने की अनुमति देता है:

'{:06x}'.format(123)
# '00007b'

पायथन 2.6 उपयोग के लिए

'{0:x}'.format(int(line))

या

'{0:06x}'.format(int(line))

8
format()फ़ंक्शन का उपयोग करना आसान है, आप किसी भी टेम्प्लेटिंग कार्यक्षमता का उपयोग नहीं कर रहे हैं, केवल स्वरूपण। यदि सब अपने टेम्पलेट शामिल है {:..}के लिए एक मूल्य, पर ले जाने के format(value, '..')बजाय।
— मार्टिन पीटर्स

उपयोग करते हुए f.write('{:x}'.format(hex(int(line)))), यह कहता हैValueError: zero length field name in format
— महमूद

formatएक इंट की जरूरत है, न कि एक स्ट्रिंग:f.write('{:x}'.format(int(line)))
— यूमिरो

17

आप बस लिख सकते हैं

hex(x)[2:]

पहले दो वर्णों को निकालना।


3
यह आउटपुट के भविष्य के परिवर्तनों के खिलाफ सुरक्षित नहीं है।
— स्टेफानो सैनफिलिपो

2
इसके अलावा पायथन 2 में लंबे समय के साथ यह अजीबोगरीब पैदा करता है:>>> hex(3735928559)[2:] 'deadbeefL'
— जामिलाक

@ नेक्सस: मुझे संदेह है कि वे अगले प्रमुख रिलीज से पहले आउटपुट प्रारूप को बदल देंगे। आपके पास वैसे भी अन्य असंगतताएं होंगी।
— जानूस ट्रॉल्सन

9
यह xनकारात्मक है तो टूट जाएगा ।
— DSM


7

पुरानी शैली स्ट्रिंग स्वरूपण:

In [3]: "%02x" % 127
Out[3]: '7f'

नई शैली

In [7]: '{:x}'.format(127)
Out[7]: '7f'

प्रारूप अक्षरों के रूप में बड़े अक्षरों का उपयोग करने से अपरकेस हेक्साडेसिमल मिलता है

In [8]: '{:X}'.format(127)
Out[8]: '7F'

डॉक्स यहां हैं।

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