この質問を見て、自分のマシンでOPのコードを試しました。テキスト版とスクリーンショットは次のとおりです。
今何があったの?これは関数であるはずであり、square
正しく実装されています。確かに、コードをコピーして貼り付けて、もう一度試しました。
のこれらのバージョンに違いは見られませんsquare
が、後者だけが機能します。
私が考えることができる唯一の理由は、タブとスペースが混在している可能性があるため、return
ステートメントが実際にインデントされ、ループが1回だけ実行されることです。しかし、私はそれを再現できませんでした。これは、インタープリターの混合インデント チェックの信じられないほどの欠陥のようです。2 つ、または 3 つの質問があります。
- 何が恋しいですか?
- これが混合インデントである場合、それは正確には何ですか?
- これが混合インデントである場合、なぜインタープリターにキャッチされなかったのですか? 明らかに、python (および一般的に) のインデントの全体的な考え方は、そのような問題を回避することです。そして、そのようなことを滑らせることはあまりにも重要です。