Python の変数と代入の図

不言
不言オリジナル
2018-04-23 16:05:571656ブラウズ

この記事では主に Python の変数と代入の図を紹介しますので、参考にしてください。一緒に見てみましょう

Python は C 言語とは大きく異なる独特な言語です。Python を初めて使用する人の多くは、変数や代入が理解できないと言います。参考にしてください

Python は C 言語とは大きく異なる独特な言語です。Python を初めて使用する人の多くは、変数に値を代入するときに変数と代入が理解できないと言います。 、最初にデータ型を指定する必要があり、値を保存するために使用されるメモリ領域も開くことになります。例:


int a = 1;


Python の変数と代入の図

a は、メモリ空間内の小さな領域です。大きな部屋に小さな箱を置き、その箱に整数 1 の荷重を入れるという課題があります。

今度は変数 a を再割り当てします


a = 2;


Python の変数と代入の図2

ボックスは同じボックスのままです。これは、メモリアドレスは変更されていませんが、メモリ内の値が変更され、2になったことを意味します。

もう一度見てください:


int b = a;


Python の変数と代入の図3

変数aを別の変数bに代入するとき、それは値をコピーして新しく開かれたメモリ領域である変数bに渡すことと同じです

In Python では、「変数」の厳密な名前は「name」ですが、これはラベルとしても理解できます。私たちの名前と同じように、名前はその人に付けられたラベルです。


>>> 10-a
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name &#39;a&#39; is not defined


たとえば、上記のエラー メッセージは、名前 'a' が定義されていないが、変数と呼ばれていないことを示しています。

Python では、変数に値を割り当てることは、人に名前を付けるのと同じように、オブジェクトにラベルを付けることと同じです。変数自体には型情報がなく、実際の情報はオブジェクト内にあります。

例:


a = 1


Python の変数と代入の図

内部的には、Python はまず整数オブジェクト 1 を作成するためにメモリ空間を割り当て、次にこの 1 に a という名前のラベルを付けます。

次に


a=2


を実行すると、Python は別のメモリ領域に整数オブジェクト 2 を作成し、ラベル a を 1 から剥がして 2 に貼り付けます。この時点では、もう使用できません。 aから値1を取得しました。

Python の変数と代入の図

今度は、名前 a を別の名前 b に割り当てます


b = a


Python の変数と代入の図

これは、先ほどの 2 に新しいラベル b を付けるのと同じであることに注意してください。 b を定義するときにメモリ領域を割り当てる必要はありません。この方法では、赤ちゃんに名前を付けるときと同じように、2 にアクセスできます。 , しかし、それらはすべて同じ人物を指します。

私たちは通常、Python で「変数」という名前を使用しますが (これはプログラミング言語で一般的な名前であるため)、Python の変数は他の言語とは異なることを理解する必要があります。変数は単なる名前です。

Python の変数と代入を理解した後、以下に示すように、関数のパラメーターの受け渡しを見てみましょう:


>>> def fun_a(a):
...   a = a+4
...
>>> g = 0
>>> fun_a(g)
>>> g
0


グローバル変数 g が関数 fun_a に渡される場合、それは次と等価です。関数のパラメータ a はラベルとして 0 に付けられ、次に a が再割り当てされます (a=a+4)。これは 0 からラベル a を剥がして 4 に付けるのと同じで、その後 g は次のようになります。ラベルはまだ 0 です。

Python の変数と代入の図

この関数をもう一度見てください。渡されるのはリストオブジェクトです


>>> def fun_b(names):
...   names[0] = [&#39;x&#39;, &#39;y&#39;]
...
>>> n_list = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;]
>>> fun_b(n_list)
>>>
>>> n_list
[[&#39;x&#39;,&#39;y&#39;], &#39;b&#39;, &#39;c&#39;]


これは前のステップと同じで、namesとn_listは両方とも['a','b'です。 ,'c' ] では、リストの 0 番目の要素のみが再割り当てされていますが、名前と n_list はリスト オブジェクトにまだ付加されています。n_list の値は更新されていますが、オブジェクトは元のオブジェクトのままです。まるで、チャン・サンとシャオ・ザンが同じ人物のようです。シャオ・ザンの服を着替えると、実際にはチャン・サンの服を着替えることになります。しかし、彼の身に着いているものは変わりました。

Python の変数と代入の図

関連する推奨事項:

Python 変数の割り当ての詳細なステップバイステップ説明

Python 変数と割り当ての詳細な図による説明


以上がPython の変数と代入の図の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。