更改IDLE中的数字表示

时间:2015-12-20 14:41:22

标签: python python-idle

我在日常工作中经常使用Python IDLE,主要用于简短的脚本和强大而方便的计算器。

我通常必须使用不同的数字基(大多数是十进制,十六进制,二进制和不太频繁的八进制和其他基数。)

我知道使用int()hex()bin()oct()是从一个基地移动到另一个基地并为integer literals添加前缀的便捷方式右前缀是另一种表达数字的方式。

我发现在一个函数中进行计算只是为了在正确的基础上查看结果非常不方便(hex()和类似函数的结果输出是一个字符串),所以我&#39 ; m试图实现的是拥有一个函数(或者可能是一个语句?),它将内部IDLE数字表示设置为已知的基数(2,8,10,16)。

示例:

>>> repr_hex() # from now on, all number are considered hexadecimal, in input and in output

>>> 10 # 16 in dec
>>> 0x10 # now output is also in hexadecimal

>>> 1e + 2 
>>> 0x20

# override should be possible with integer literal prefixes
# 0x: hex ; 0b: bin ; 0n: dec ; 0o: oct
>>> 0b111 + 10 + 0n10 # dec : 7 + 16 + 10
>>> 0x21 # 33 dec

# still possible to override output representation temporarily with a conversion function
>>> conv(_, 10) # conv(x, output_base, current_base=internal_base)
>>> 0n33
>>> conv(_, 2) # use prefix of previous output to set current_base to 10
>>> 0b100001
>>> conv(10, 8, 16) # convert 10 to base 8 (10 is in base 16: 0x10)
>>> 0o20

>>> repr_dec() # switch to base 10, in input and in output
>>> _
>>> 0n16
>>> 10 + 10
>>> 0n20

实现这些功能似乎并不困难,我不知道的是:

  • 是否可以更改IDLE中的数字表示?
  • 是否可以在不更改IDLE(源代码)本身的情况下执行此操作?我查看IDLE extensions,但我不知道从哪里开始可以访问IDLE内部。

谢谢。

0 个答案:

没有答案