Bagaimana cara menggunakan hex () tanpa 0x dengan Python?


93

The hex()fungsi dalam python, menempatkan karakter terkemuka 0xdi depan nomor. Apakah ada cara untuk memberitahukannya agar TIDAK menempatkannya? Begitu 0xfa230juga fa230.

Kodenya adalah

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

2
Anda bisa mengiris 0x.
Ashwini Chaudhary

3
@AshwiniChaudhary Saya pikir dia pada dasarnya bertanya bagaimana cara memotong 0x
Mine

Jawaban:


187
>>> format(3735928559, 'x')
'deadbeef'

34
Harus menyukai deadbeefcontoh ole . Dan format()merupakan cara terbaik untuk melakukan ini.
Martijn Pieters

58

Gunakan kode ini:

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

ini memungkinkan Anda untuk menentukan sejumlah digit juga:

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

Untuk penggunaan Python 2.6

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

atau

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

8
Menggunakan format()fungsi ini lebih mudah, Anda tidak menggunakan fungsionalitas pembuatan kerangka, hanya pemformatan. Jika semua template Anda berisi {:..}untuk satu nilai, pindahlah ke format(value, '..').
Martijn Pieters

Menggunakan f.write('{:x}'.format(hex(int(line)))), tertulisValueError: zero length field name in format
mahmood

formatmembutuhkan int, bukan string:f.write('{:x}'.format(int(line)))
eumiro

17

Anda cukup menulis

hex(x)[2:]

untuk menghapus dua karakter pertama.


3
Ini tidak aman terhadap perubahan output di masa mendatang.
Stefano Sanfilippo

2
Juga di Python 2 dengan angka panjang menghasilkan ouput aneh:>>> hex(3735928559)[2:] 'deadbeefL'
jamylak

@esseks: Saya ragu mereka akan mengubah format output sebelum rilis utama berikutnya. Anda akan memiliki ketidakcocokan lain.
Janus Troelsen

9
Ini akan rusak jika xnegatif.
DSM


7

Pemformatan string gaya lama:

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

Gaya baru

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

Menggunakan huruf kapital sebagai karakter format menghasilkan heksadesimal huruf besar

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

Dokumen ada di sini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.