1. ホーム
  2. python

[解決済み] SyntaxError 無効なトークン

2022-02-10 09:30:12

質問

変数に値を代入しようとすると、問題が発生します。この問題は、日付をタプルまたはリストとしてこの順序で入れようとしたときに現れます。 year, month, day.

>>> a = (2016,04,03)         # I try to put the date into variable 'a' as a tuple.
SyntaxError: invalid token
>>> a = [2016,04,03]         # I try to put the date into variable 'a' as a list.
SyntaxError: invalid token

  1. なぜこのようなことが起こるのでしょうか?

  2. どうすれば直るのですか?

  3. Pythonでtokenとはどういう意味ですか?

どのように解決するのですか?

Python 3 では、数値の先頭のゼロは許されません。例

05
0123

などは不可で、以下のように記述します。 5123 の代わりに

しかし、Python 2 では、先頭のゼロは、その数字が 8進数 (8進数)なので 04 または 03 という意味です。 43 はそれぞれ8進数であるが 08 は有効な8進数ではないので無効となる。

Python 3では、8進数の構文がこのように変更されました。

0o10
0o4

(2進数や16進数など他のベースも 0b または 0x の接頭辞があります)。

もう一つの質問ですが、Pythonのトークンとは、Pythonのインタープリターがコードを理解できるように、コードをチャンクに分割する方法のことです( ここで ). ここで、トークナイザーがコードを分割しようとするとき、そこにゼロがあるとは思わないので、エラーを投げるのです。

私は(他の回答と同様に)先頭のゼロを削除することを提案します ( (2016,4,3) ) または文字列で表現する ( ("2016","04","03") ).