先跳个坑
python@ubuntu:~$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 0x10
16
>>> 010
File "<stdin>", line 1
010
^
SyntaxError: invalid token
>>> 0b10
2
>>>
以上写法在python3中竟然出现语法错误,再分别来看看python2中和python3中进制是如何转换的
python@ubuntu:~$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> oct(64),hex(64),bin(64)
('0100', '0x40', '0b1000000')
>>>
python@ubuntu:~$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> oct(64),hex(64),bin(64)
('0o100', '0x40', '0b1000000')
>>>
可以看出python3中八进制的转换是0x而python2中是0,python3环境下逆推
python@ubuntu:~$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 0x10
16
>>> 0o10
8
>>> 0b10
2
>>>
再看看在python2环境下这种写法会不会报错
python@ubuntu:~$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0x10
16
>>> 0o10
8
>>> 0b10
2
>>>