2009-12-03 5 views
39

Я новичок в Python и я пытаюсь использовать восьмеричное число в моем сценарии, но когда я пытаюсь его, он возвращает мне эту ошибку:Недопустимый маркер при использовании восьмеричных чисел

>>> a = 010 
SyntaxError: invalid token (<pyshell#0>, line 1) 
>>> 01 
SyntaxError: invalid token (<pyshell#1>, line 1) 

Там в что-то не так с моим кодом? Я использую Python3 (и читаю книгу python 2.2)

+0

Там может быть что-то не так с вашей установки Python или оболочки, которую вы используете. Попробуйте сделать то же самое на http://shell.appspot.com и посмотрите, есть ли у вас одинаковые ошибки. –

ответ

58

Попробуйте 0o10, может быть, из-за python 3 или pyshell.

PEP говорит,

octal literals must now be specified with a leading "0o" or "0O" instead of "0";

http://www.python.org/dev/peps/pep-3127/

+12

Я желаю, чтобы каждый язык требовал этого для восьмеричных чисел; как глупо было использовать свинец 0. Теперь, если мы можем просто получить поддержку 0sNNN (для sexagesimal) и поместить номера base-64 в наш код. –

+2

Подумайте о возможностях для магических констант ... больше не ограничивается '0xdeadbeef' и т. Д .: o –

+0

Спасибо С.Марку, использование« Oo »работает просто отлично. – Rafael