3

この質問を見て、自分のマシンでOPのコードを試しました。テキスト版とスクリーンショットは次のとおりです。

悪い広場

今何があったの?これは関数であるはずであり、square正しく実装されています。確かに、コードをコピーして貼り付けて、もう一度試しました。

良い正方形

のこれらのバージョンに違いは見られませんsquareが、後者だけが機能します。

私が考えることができる唯一の理由は、タブとスペースが混在している可能性があるため、returnステートメントが実際にインデントされ、ループが1回だけ実行されることです。しかし、私はそれを再現できませんでした。これは、インタープリターの混合インデント チェックの信じられないほどの欠陥のようです。2 つ、または 3 つの質問があります。

  1. 何が恋しいですか?
  2. これが混合インデントである場合、それは正確には何ですか?
  3. これが混合インデントである場合、なぜインタープリターにキャッチされなかったのですか? 明らかに、python (および一般的に) のインデントの全体的な考え方は、そのような問題を回避することです。そして、そのようなことを滑らせることはあまりにも重要です。
4

3 に答える 3