python3中八进制数的表示

2018-12-09  本文已影响56人  python_spider

先跳个坑

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
>>> 

综上,在平时写代码的时候一定要注意通用写法,不要一味的求简单,掌握正确的通用写法

上一篇 下一篇

猜你喜欢

热点阅读