Python コードの作成に関するよくある質問


Python コードを真剣に書き始めると、多くの落とし穴がさらに危険になります。これらは、言語機能にまたがる基本的なコード エラーであり、注意力のないプログラマーを悩ませることがよくあります。


最初の列から開始します

最上位のネストされていないコードを [スタート] に配置してください。最初の列が左端にあります。これには、モジュール ファイルにネストされていないコードや、対話型プロンプトにネストされていないコードが含まれます。 Python はインデントを使用してネストされたコード ブロックを区別するため、コードの左側のスペースはネストされたコード ブロックを表します。インデントを除いて、空白は通常無視されます。


#Python で C コードを作成しないでください

Python に詳しくない C プログラマー向けの注意事項をいくつか示します:

    if と while で条件をテストする場合、括弧を入力する必要はありません (例: if (X==1):)。必要に応じて括弧を追加してもかまいませんが、ここでは完全に冗長です。
  • ステートメントをセミコロンで終わらせないでください。技術的には、これは Python では有効ですが、多くのステートメントを同じ行に配置する場合を除き、役に立ちません (たとえば、x=1; y=2; z=3)。
  • while ループの条件付きテストに代入ステートメントを埋め込まないでください (たとえば、
  • while ((x=next() != NULL))。Python では、式は where ステートメントを使用できません。が発生し、代入ステートメントは式ではありません。

コロンを忘れないでください

これは、初心者プログラマーが犯す最も一般的な間違いです。複合ステートメントの開始ステートメントにコロンを置くことを忘れないでください (if 、while、for など。最初の行の最後にコロン「:」を追加します。最初は忘れるかもしれませんが、すぐにそれは潜在意識の習慣になります。クラスの生徒の 75% はその日のうちにこれを思い出すことができます。

変数の初期化

Python では、式内の名前は、値が割り当てられるまで使用できません。これは意図的なものです。これにより、いくつかの入力エラーが回避され、デフォルトのタイプ (0、None、""、[]、?) がどのようなものであるべきかについての質問も回避されます。カウンタを 0 に初期化し、リストを [] に初期化することを忘れないでください。

一貫したインデント

コードを実行しているシステムがタブをどのように処理するかを理解していない限り、同じコード ブロック内でインデントにタブとスペースを混在させないでください。そうしないと、エディターではタブのように見えるインデントが、Python ではスペースのように見える可能性があります。安全を期すために、各コード ブロックをすべてタブまたはすべてスペースでインデントします。使用量を増やすか減らすかはあなた次第です。

関数を呼び出すときにかっこを使用する

関数にパラメーターが必要かどうかに関係なく、関数を呼び出すにはかっこのペアを追加する必要があります。つまり、function ではなく function() を使用します。 Python 関数は、特別な関数 (呼び出し) を備えた単なるオブジェクトであり、呼び出しは括弧を使用してトリガーされます。すべてのオブジェクトと同様、x=function:x() のように変数に割り当てて間接的に使用できます。
Python のトレーニングでは、ファイル操作中にこのようなエラーが発生することがよくあります。初心者が問題をクローズするために file.close() ではなく file.close を使用するのをよく見かけます。 Python では、関数を呼び出さずに関数を参照することは合法であるため、かっこなしの操作 (file.close) はサイレントに成功しますが、ファイルは閉じられません。

インポート時に式やパスを使用しないでください。

システム コマンド ラインではフォルダー パスまたはファイル拡張子を使用しますが、インポート ステートメントでは使用しないでください。つまり、import mod.py の代わりに import mod を使用するか、import dir/mod.py を使用します。実際、これはおそらく初心者が犯す 2 番目に大きな間違いです。モジュールには .py 以外のサフィックス (.pyc など) が付けられるため、特定のサフィックスを強制することは文法に反するだけでなく、無意味です。
システム関連のディレクトリ パスの形式は、import ステートメントではなく、モジュール検索パスの設定によって決まります。ファイル名にドットを使用して、パッケージのサブディレクトリを指すことができます (例: import dir1.dir2.mod)。ただし、左端のディレクトリはモジュール検索パス経由で見つける必要があり、インポートには他のパス形式はありません。間違ったステートメント import mod.py は、Python によってパッケージに記録されていると見なされます。最初にモジュール mod がロードされ、次に mod というディレクトリで py というモジュールを見つけようとします。最終的には何も見つからない可能性があります。一連の紛らわしいエラー メッセージが報告されます。