2014-10-17 18 views
7

Trong trình thông dịch Python, 0809 có vẻ không hợp lệ. Ví dụ:Tại sao 08 hoặc 09 trong Python không hợp lệ?

>>> 01 
1 
>>> 02 
2 
>>> 03 
3 
>>> 04 
4 
>>> 05 
5 
>>> 06 
6 
>>> 07 
7 
>>> 08 
    File "<stdin>", line 1 
    08 
    ^
SyntaxError: invalid token 
>>> 09 
    File "<stdin>", line 1 
    09 
    ^
SyntaxError: invalid token 

Như bạn có thể thấy, chỉ 0809 dường như không làm việc. Những giá trị đặc biệt này hay gì đó?

+2

Ký hiệu bát phân. Ngoài ra một bản sao của một vài trăm câu hỏi về SO ... Xin vui lòng làm một số nỗ lực tìm kiếm trước khi đặt câu hỏi, tôi nghĩa đen googled 'python 08' và đã được trình bày với _multiple_ kết quả có liên quan từ SO. – l4mpi

+0

Chúng là bát phân. http://stackoverflow.com/questions/11620151/what-do-numbers-starting-with-0-mean-in-python –

Trả lời

10

Một số có số 0 đứng đầu được hiểu là octal literal. Vì vậy, 8 và 9 không hợp lệ trong bát phân. Chỉ các chữ số từ 0 đến 7 là hợp lệ.

Cố gắng trong thông dịch viên:

>>> 011 
9 
>>> 012 
10 
>>> 013 
11 
2

Nếu một số bắt đầu với 0, nó có nghĩa là nó là một số bát phân:

>>> 010 
8 
Các vấn đề liên quan