Python は、C 言語とは大きく異なる独自の言語です。Python を初めて使用する多くの初心者は、変数と代入が理解できないと言います。C を学習したことがある人なら、変数に値を代入するときに、最初にデータ型を指定する必要があります。同時に、値を保存するためにメモリ領域が開かれます (例:
inta =1;
)#a はメモリ空間の小さな領域です ブロック領域は大きな部屋にある小さな箱のようなもので、その箱に整数 1 をロードすることが割り当てられます。
ここで変数 a
a =2 を再割り当てします。
ボックスはまだ同じボックスです。つまり、メモリ アドレスは変更されていません。が変更されましたが、このメモリセグメントの値は変更され、2 になりました。
もう一度見てください:
intb = a;
変数 a を別の変数 b に代入する場合、値を代入するのと同じです。コピーは、新しく開かれたメモリ領域である変数 b に渡されます。
Python では、「変数」の厳密な名前は「name」ですが、これはラベルとしても理解できます。名前、名前は人に付けられるラベルです。
たとえば、上記で報告されたエラーは、名前「a」が定義されていないが、変数と呼ばれていないというものです。
Python では、変数に値を割り当てることは、人に名前を付けるのと同じように、オブジェクトにラベルを付けることと同じです。変数自体には意味がありません。変数には型情報がなく、実際の情報は物体。
例:
a =1
Python は、まず整数オブジェクト 1 を作成するためにメモリ空間を割り当て、次に次の値を与えます。これは 1 a という名前のラベルを付けます。
次に、
a=2
Python を実行すると、別のメモリ領域に整数オブジェクト 2 が作成され、ラベル a が 1 から剥がされて 2 に貼り付けられます。 . この時点で、1 から a までの値は取得できなくなります。
次に、名前 a を別の名前 b
b = a
に割り当てます。これは There と同等です。 b は 2 に付けられた新しいラベルです。これは C 言語とはまったく異なることに注意してください。b を定義するときにメモリ領域を割り当てる必要はありません。そのため、a または b を通じて 2 にアクセスできます。2. これらはすべて、私たちが赤ちゃんにあだ名と偉い人の両方の名前を付けるときと同じように、実際には同じ人を呼びます。
通常、Python では「変数」という用語を使用しますが (これはプログラミング言語で一般的な用語であるため)、Python の変数は他の言語とは異なることを理解する必要があります。変数は単なる名前です。
Python の変数と代入を理解した後、次のように関数のパラメータ転送を見てみましょう:
グローバル変数 g が渡された場合これは、関数のパラメータ a がラベルとして 0 にアタッチされるのと等価です。その後、 a が再割り当てされます (a=a 4)。これは、ラベル a を 0 から剥がしてそれにアタッチするのと同じです。 4 の場合、g はまだ 0 ラベルにあります。
この関数をもう一度見てみましょう。渡されるのはリスト オブジェクトです。
これはまだ、前の手順では、names と n_list はどちらも ['a', 'b', 'c'] のラベルですが、リストの 0 番目の要素が再割り当てされていることを除き、n_list であっても、names と n_list はこのリスト オブジェクトにまだアタッチされています。値は更新されますが、オブジェクトは元のオブジェクトのままです。まるで、チャン・サンとシャオ・チャンが同一人物のようです。シャオ・チャンのために服を着替えると、実際にはチャン・サンのために服を着替えることになります。その人は同じ人間ですが、彼の身に着いているものは変わりました。
関連チュートリアル: Python ビデオ チュートリアル
以上がPython 学習図の変数と代入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。