Oto domyślne zachowanie:Jak mogę skonfigurować ipython do wyświetlania liczb całkowitych w formacie szesnastkowym?
In [21]: 255
Out[21]: 255
A oto co chciałbym:
In [21]: 255
Out[21]: FF
Mogę setup ipython to zrobić?
Oto domyślne zachowanie:Jak mogę skonfigurować ipython do wyświetlania liczb całkowitych w formacie szesnastkowym?
In [21]: 255
Out[21]: 255
A oto co chciałbym:
In [21]: 255
Out[21]: FF
Mogę setup ipython to zrobić?
Można to zrobić poprzez rejestrację specjalnego formatowania wyświetlania wskazówki:
In [1]: formatter = get_ipython().display_formatter.formatters['text/plain']
In [2]: formatter.for_type(int, lambda n, p, cycle: p.text("%X" % n))
Out[2]: <function IPython.lib.pretty._repr_pprint>
In [3]: 1
Out[3]: 1
In [4]: 100
Out[4]: 64
In [5]: 255
Out[5]: FF
Jeśli chcesz to zawsze na, można utworzyć plik w $(ipython locate profile)/startup/hexints.py
z pierwszych dwóch linii (lub jednego celu uniknięcia wszelkie przypisania):
get_ipython().display_formatter.formatters['text/plain'].for_type(int, lambda n, p, cycle: p.text("%X" % n))
, które będą wykonywane za każdym razem, gdy uruchomi się program IPython.
Idealny. Dokładnie to, czego szukałem. Wielkie dzięki! – geschema
Jeszcze lepiej: wydrukuj obie reprezentacje! 'formatter.for_type (int, lambda n, p, cycle: p.text ("% d (0x% X) "% (n, n)))' –
Ta sugestia jest niesamowita, pozwoli zaoszczędzić mi skumulowanych godzin pisania " hex (...) ', aby uzyskać wyniki w formacie szesnastkowym. – wump
podstawie minrk's answer i rjb's answer na inne pytanie, kładę to w moim pliku startowego Python:
def hexon_ipython():
'''To print ints as hex, run hexon_ipython().
To revert, run hexoff_ipython().
'''
formatter = get_ipython().display_formatter.formatters['text/plain']
formatter.for_type(int, lambda n, p, cycle: p.text("0x%x" % n))
def hexoff_ipython():
'''See documentation for hexon_ipython().'''
formatter = get_ipython().display_formatter.formatters['text/plain']
formatter.for_type(int, lambda n, p, cycle: p.text("%d" % n))
hexon = hexon_ipython
hexoff = hexoff_ipython
więc można go używać tak:
In [1]: 15
Out[1]: 15
In [2]: hexon()
In [3]: 15
Out[3]: 0xf
In [4]: hexoff()
In [5]: 15
Out[5]: 15
możliwym duplikatu [ten post] (http://www.stackoverflow.com/q/1187000/20009616). – isedev
Powiązane: [Domyślny wyświetlacz hex konsoli Pythona] (https://stackoverflow.com/q/6307433/4518341) – wjandrea