Dưới đây là hành vi mặc định:Làm thế nào tôi có thể cấu hình ipython để hiển thị số nguyên theo định dạng hex?
In [21]: 255
Out[21]: 255
Và đây là những gì tôi muốn:
In [21]: 255
Out[21]: FF
Tôi có thể thiết lập ipython để làm điều đó?
Dưới đây là hành vi mặc định:Làm thế nào tôi có thể cấu hình ipython để hiển thị số nguyên theo định dạng hex?
In [21]: 255
Out[21]: 255
Và đây là những gì tôi muốn:
In [21]: 255
Out[21]: FF
Tôi có thể thiết lập ipython để làm điều đó?
Bạn có thể làm điều này bằng cách đăng ký một định dạng hiển thị đặc biệt dành cho ints:
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
Nếu bạn muốn thường xuyên này, bạn có thể tạo một tập tin trong $(ipython locate profile)/startup/hexints.py
với hai dòng đầu tiên (hoặc là một trong để tránh bất kỳ bài tập nào):
get_ipython().display_formatter.formatters['text/plain'].for_type(int, lambda n, p, cycle: p.text("%X" % n))
sẽ được thực hiện mỗi khi bạn khởi động IPython.
Hoàn hảo. Chính xác những gì tôi đang tìm kiếm. Cảm ơn rất nhiều! – geschema
Thậm chí tốt hơn: in cả hai biểu diễn! 'formatter.for_type (int, lambda n, p, chu kỳ: p.text ("% d (0x% X) "% (n, n)))' –
Đề xuất này là tuyệt vời, sẽ tiết kiệm cho tôi số giờ tích lũy của việc nhập ' hex (...) 'để có được kết quả theo định dạng hex. – wump
Dựa trên minrk's answer và rjb's answer về câu hỏi khác, tôi đặt điều này trong tập tin khởi động Python của tôi:
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
Vì vậy, tôi có thể sử dụng nó như thế này:
In [1]: 15
Out[1]: 15
In [2]: hexon()
In [3]: 15
Out[3]: 0xf
In [4]: hexoff()
In [5]: 15
Out[5]: 15
thể trùng lặp của [bài này] (http://www.stackoverflow.com/q/1187000/20009616). – isedev
Liên quan: [Bảng điều khiển mặc định của bảng điều khiển Python hiển thị] (https://stackoverflow.com/q/6307433/4518341) – wjandrea