0

少なくとも私にとっては、非常に奇妙なことに遭遇しました。

if month not in (02, 04, 06, 11):
        print "Good"

09タプルに追加するたびに、次のようなエラーが発生SyntaxError: invalid tokenしました。これはこの特定の番号のみです。

何か案が?

4

4 に答える 4

3

数値の先頭を使用すると、Pythonはそれを基数8(8進数)0の数値として解釈します。先頭を削除します:0

>>> 10
10
>>> 010
8
>>> 9
9
>>> 09
  File "<stdin>", line 1
    09
     ^
SyntaxError: invalid token

Python3はこれを改善しました。先頭が付いているすべての0数字は無効と見なされるようになりました。8進数を作成するには、代わりに常に0oプレフィックスを使用する必要があります。

>>> 010
  File "<stdin>", line 1
    010
      ^
SyntaxError: invalid token
>>> 0o10
8
于 2013-02-02T15:11:40.743 に答える
1

先頭に0s がある数値は 8 進数と見なされるため、09無効です... 0 を削除するだけです

于 2013-02-02T15:12:00.107 に答える
0

8進数として解釈される可能性のある数字の前にゼロを取り除く必要があると思います...

于 2013-02-02T15:14:00.727 に答える
0

これを試すことができます(09がエラーを提供する理由はすでに回答されています)

month='05'
if month not in ('02', '04', '06', '11','09'):
        print "Good"
于 2013-02-02T15:18:36.190 に答える