The hex()
fungsi dalam python, menempatkan karakter terkemuka 0x
di depan nomor. Apakah ada cara untuk memberitahukannya agar TIDAK menempatkannya? Begitu 0xfa230
juga fa230
.
Kodenya adalah
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
0x
.Jawaban:
>>> format(3735928559, 'x') 'deadbeef'
sumber
deadbeef
contoh ole . Danformat()
merupakan cara terbaik untuk melakukan ini.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))
sumber
format()
fungsi ini lebih mudah, Anda tidak menggunakan fungsionalitas pembuatan kerangka, hanya pemformatan. Jika semua template Anda berisi{:..}
untuk satu nilai, pindahlah keformat(value, '..')
.f.write('{:x}'.format(hex(int(line))))
, tertulisValueError: zero length field name in format
format
membutuhkan int, bukan string:f.write('{:x}'.format(int(line)))
Anda cukup menulis
hex(x)[2:]
untuk menghapus dua karakter pertama.
sumber
>>> hex(3735928559)[2:]
'deadbeefL'
x
negatif.Python 3.6+:
>>> i = 240 >>> f'{i:02x}' 'f0'
sumber
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.
sumber