tôi chỉ thực hiện các chương trình sau đây trên thông dịch viên python của tôi:Python không thể xử lý chuỗi số bắt đầu bằng 0. Tại sao?
>>> def mylife(x):
... if x>0:
... print(x)
... else:
... print(-x)
...
>>> mylife(01)
File "<stdin>", line 1
mylife(01)
^
SyntaxError: invalid token
>>> mylife(1)
1
>>> mylife(-1)
1
>>> mylife(0)
0
Bây giờ, tôi đã thấy this nhưng như liên kết nói, 0 cho bát phân không hoạt động nữa trong python (tức là không làm việc trong python3). Nhưng điều đó không có nghĩa là hành vi của các số bắt đầu bằng 0 phải được diễn giải đúng không? Hoặc trong cơ sở-2 hoặc đại diện cơ bản-10 bình thường? Vì nó không phải như vậy, tại sao python cư xử như thế? Đây có phải là vấn đề triển khai không? Hay nó là một vấn đề ngữ nghĩa?
Yup. Có vẻ như một lời giải thích tốt, như quyết định thiết kế có thể. Có thể sau hai năm, khi hầu hết các công cụ đã được chuyển, sau đó, tôi nghĩ, tính năng này nên được cho phép một lần nữa. Cảm ơn! –
Nhắc nhở "Tại sao các lập trình viên nhầm lẫn Giáng sinh và Halloween" - "Bởi vì tháng mười hai (25) là oct (31)"; P –
@JonClements - Tôi chưa từng thấy điều đó trước đây - Khá thông minh - tôi cho rằng có lẽ đã được đề cập trong một trong các lớp CS mà tôi chưa bao giờ tham gia. – mgilson