1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

どうしちゃったのpython(その1:ここは、syntax errorでしょう)

Last updated at Posted at 2019-06-29

目的

ちょっと、python(python3)で不思議な動きをみたので、
情報共有。

ちなみに、なんの実害もありません。
(あえて、提示しているのは、少しでも、理解を深めて、役立つことにどこかで役立たせるためです。)

不思議な現象

なぜ、「あ」とか「い」が許されて、計算までできて、
10abc、まあ、これは、仕様上NGですが、許されない???
文字コードのアヤですか?
ワタシは、いま、答え、わかってません。

>>>
>>> あ = 3
>>> い = 4
>>> あ + い
7
>>>
>>>
>>> 10abc = 3
  File "<stdin>", line 1
    10abc = 3
        ^
SyntaxError: invalid syntax
>>>
>>>

仕様通りでした、すみません

以下のリファレンスによると
https://docs.python.org/ja/3/reference/lexical_analysis.html#identifiers

ASCII 範囲 (U+0001..U+007F) 内では、識別子として有効な文字は Python 2.x におけるものと同じです。大文字と小文字の A から Z、アンダースコア _、先頭の文字を除く数字 0 から 9 です。
Python 3.0 は、さらに ASCII 範囲外から文字を導入します (PEP 3131 を参照してください。)。これらの文字については、分類は unicodedata モジュールに含まれる Unicode Character Database の版を使います。
識別子の長さには制限がありません。大小文字は区別されます。

すみません、python3では、使っていいみたいです。

ちなみに、全角のダブルクォーテーションとかは、ダメみたいです。

>>>
>>> ”あ” = 3
  File "<stdin>", line 1
    ”あ” = 3
      ^
SyntaxError: invalid character in identifier
>>>

まとめ

別の内容を記載しようと思って、作業していたら、
変な現象に出会ったので、情報共有。
ユニコードマジック???
もしかすると、スクリプトとかではよくあるのかもしれません。。。スクリプト言語しらないので、ワタシだけが衝撃を受けているのかも。。。。

すみません、python3では、仕様的にOKらしいです。

関連(本人)

pythonをストレスなく使う!(generatorに詳しくなる。since1975らしい。)
pythonをストレスなく使う!(Pythonでは、すべてがオブジェクトとして実装されている)
pythonをストレスなく使う!(Pylintに寄り添う)
pythonをストレスなく使う!(ExpressionとStatement)
英語と日本語、両方使ってPythonを丁寧に学ぶ。

今後

コメントなどあれば、お願いします。:candy:
勉強します、、、、

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?