2、Pythonの演算子とシーケンスタイプの範囲

Python演算子

1.オペレーターの概要

演算子は特別な記号であり、対応するデータタイプのオペランドに対して操作を実行できます。
ここに写真の説明を挿入

2.標準の算術演算子

ここに写真の説明を挿入
ここに写真の説明を挿入
整数除算演算子を使用して2つの数値を操作すると、操作結果の整数部分のみが保持されます。
ここに写真の説明を挿入

  • では、9 // -4とは何ですか?

ここに写真の説明を挿入
上の図を分析します。ある数値を別の数値の整数で割る演算は、実際にはこの数値が他の数値の何倍かを計算しているため、演算の結果は-3の倍数になります。

では、上の図の下にある2つの計算プロセスを考えてみませんか?
9/4、倍数は2、残りは1であることは誰もが知っています。つまり、残りは除算器4よりも小さく、0から4
間です。同じように、除数が-4の場合、残りは-4から0の間になるので、これが最初の計算プロセスです。
ここに写真の説明を挿入

  • -9 // 4

同様に、-9 // 4の場合、除数は4であるため、残りは0から4の間でなければなりません。つまり、残りは3であるため、結果は-3になります。
ここに写真の説明を挿入

  • -9 // -4

-9 // -4の場合、除数は-4であるため、残りは-4から0の間であり、倍数は-4であり、残りは-1であるため、結果は2になります。
ここに写真の説明を挿入
したがって、整数除算演算子//は、値が別の値である回数を計算するために使用されます。
したがって、分割の場合、将来プログラムを作成するときは、通常の分割と整数の分割を区別する必要があります。通常の分割は1つのスラッシュで表され、整数の分割は2つのスラッシュで表されます。

3.残りの演算子

ここに写真の説明を挿入
Aはbの残りを取り、マイナスbに倍数を掛けたものに等しくなります。この倍数は整数除算演算子であり、この倍数は// bです。
言い換えると、aはbの残りを取ります。これは、aが最大で保持できるbsの数を計算するためのものであり、余分な部分が残りです。

  • 9%4の結果は何ですか?
    ここに写真の説明を挿入
    上の図を見てみましょう。9は4の残り、つまり最大で9に保持できる4の数です。9は2つの4を保持でき、余分な1は残りなので、9は4の残りです。 、結果は1です。
    したがって、次の式を適用します
    。9%4 = 9-4 *(9 // 4)= 9-4 * 2 = 1


    ここに写真の説明を挿入
  • 1.25%0.25 =
    1.25は2つの0.25を保持でき、残りの部分は0.25なので、計算結果は0.25になります。

  • 9%-4とは何ですか?
    ここに写真の説明を挿入
    ここに写真の説明を挿入
    ここに写真の説明を挿入


    同じことが
    ここに写真の説明を挿入
    言えます残りの演算子を使用して操作を実行するときは、前に説明した整数除算演算子を使用します。したがって、学習するときは、比較と組み合わせて学習する必要があります。

4.電源オペレーター

ここに写真の説明を挿入
Pythonは組み込み関数powを提供します。この組み込み関数は指数関数も実装できるため、指数関数を実行する場合は、演算子** 2つのアスタリスクを使用するか、組み込み関数powを呼び出すことができます。
ここに写真の説明を挿入
累乗演算子は非常に単純で、数値のn乗を計算するために使用されます。

5.ブール演算子

ブール演算子は、ブール値に対して操作を実行するために使用されます。つまり、ブール演算子によって接続されたオペランドはすべてブール値であり、操作の結果は引き続きブール値です。
Python言語では、and、or、notの3つのブール演算子が提供されます。
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

  • 誰もがブール演算子のチャートを覚えやすくするために:

ここに写真の説明を挿入

6.割り当て演算子と変数

ここに写真の説明を挿入
ここに写真の説明を挿入

  • 全員がこの割り当てプロセスをよりよく理解できるように、次の図を参照してください。

ここに写真の説明を挿入
まず、割り当てステートメントi = 18を実行します。割り当てステートメントi = 18の場合、整数オブジェクト18にiという名前のラベルを付けるのと同じです。左上の図を見ると、iという名前のラベルが付いています。整数18より上にあります。
次に、割り当てステートメントi = 23を実行します。これは、iという名前のラベルを整数18から切り離し、それを整数オブジェクト23にアタッチするのと同じです。次に、割り当てステートメントを実行します。 j = i。これは、jという名前のラベルを整数オブジェクト23に添付するのと同じです。これにより、iという名前のラベルおよびjという名前のラベルを介して整数オブジェクト23にアクセスできます。整数オブジェクトは23でした。

上の写真を見てみましょう。各ラベルはオブジェクトに添付されています。1つのラベルが複数のオブジェクトに添付されている状況はありません。さらに、複数のラベルをオブジェクトに添付できます。たとえば、iとiは23に添付されています。 j2つのラベル。
ここに写真の説明を挿入
もう1つの重要な点は、Python言語が他の言語とは異なる
ことです。Python言語の場合、変数はラベルと同等であり、オブジェクトのみがデータタイプを持っているため、変数にはデータタイプがありません。
通常、変数は1つのデータタイプのオブジェクトのみを参照します。

a = 18
print(a)	# 18

aという名前のラベルが整数オブジェクト18に添付され、次に整数オブジェクト18がラベル名を介してアクセスされ、印刷されます。

# 变量a又引用了另外一种数据类型的对象(不推荐)
a = 'Hello'
print(a)	# Hello

変数aに文字列を再度割り当てます。これは、整数オブジェクト18からaという名前のラベルを切り離し、それを文字列オブジェクトHelloにアタッチしてから、aという名前のラベルを介してアクセスするのと同じです。この文字列オブジェクト、それを印刷します。
元々、この変数aは整数型のオブジェクトを参照し、次にこの変数aに文字列型のオブジェクトを参照させます。これはもちろん可能ですが、通常は変数であるため、お勧めしません。1つのデータタイプのオブジェクトのみを参照してください。

このように、割り当て演算子とは何か、変数とは何か、明確にします。これら3つの割り当てステートメントの例を組み合わせる必要があります。上の図では、割り当て演算子とは何か、そして何であるかをよく理解できます。可変も。

  • 割り当て演算子は、チェーン割り当てをサポートするためのものです

つまり、複数の変数で同じオブジェクトを同時に参照する場合は、チェーン割り当てを使用できます。
ここに写真の説明を挿入
このようにして、複数の変数a、b、およびcが同時に整数オブジェクト18を参照するようにします。

  • 割り当て演算子はパラメーター割り当てをサポートします

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

7、比較演算子

ここに写真の説明を挿入
ここに写真の説明を挿入
5番目と7番目を見てみましょう。5番目は等しいです。7番目の「is」はyesを意味します。2つの等しい符号==は、2つのオペランドが等しいかどうかを比較するために使用されます。つまり、2つの等しい符号が使用されます。 「同等性」テストの場合、
2つのオペランドが同じオブジェクトであるかどうかを比較するために使用されます。つまり、「同一性」テストに使用されます。

a = b = [1, 2, 3]
c = [1, 2, 3]

ラベルaとbの両方がオブジェクトのリストに添付されているため[1、2、3]、aとbによって参照されるオブジェクトは等しくなければなりません。
もう一度比較a == cしてみましょう等しいですか?
ラベルaは、最初に作成したリスト[1、2、3]に添付され、ラベルcは、2回目に作成したリスト[1、2、3]に添付されます。これら2つのリストそれらはすべて3つの整数1、2、および3を含み、順序は1、2、3であるため、2つのリストに等しくなります。

aとbは同じオブジェクトを参照していますか?はい、それらはすべて、初めて作成されたオブジェクト[1、2、3]のリストに掲載されているため、同じオブジェクトです。
ラベルaは最初に作成した[1、2、3]リストに添付され、ラベルcは2回目に作成された[1、2、3]リストに添付されるため、これらは2つ異なります。 2つのリストオブジェクトを作成したので、aとcを「同一性」でテストすると、Falseが返されます。
ここに写真の説明を挿入

  • 不変型オブジェクトの比較です

先ほどの例では、2つのリストを作成しました。リストは可変タイプのオブジェクトであるため、変更できます。リストに要素を追加したり、要素を変更したり、要素を削除したりできます。可変型のオブジェクトである要素。

不変型オブジェクトの比較には、いくつかの特性があります。
不変型オブジェクトの場合、整数型オブジェクトなど、そのメモリを再利用できます。整数型オブジェクト18または23を作成しますが、そうでない整数型オブジェクトを作成します。可変型オブジェクト。このオブジェクトを作成すると、このオブジェクトを変更したり、このデータを変更したりすることはできません。
不変タイプのオブジェクトの場合、メモリを再利用できます。たとえば、値が小さい整数オブジェクトの場合、検証のために組み込み関数IDを呼び出すことができます。Pythonによって提供される組み込み関数IDは、オブジェクトの一意のIDを返すために使用されます。 、これはメモリ内のオブジェクトのアドレスです。

つまり、2つの整数オブジェクト18を連続して作成しました。メモリ内のこれら2つの整数オブジェクト18のアドレスは同じです。つまり、1つの整数オブジェクト18のみを作成しました。1つだけ作成した理由は、比較値が小さい整数オブジェクトのメモリが再利用される可能性があるため、この比較例では再利用されます。したがって、を使用して比較する場合、2つは同じオブジェクトであるため、比較結果は次のようになります。本当。
ここに写真の説明を挿入

  • 比較演算子は、連鎖比較に使用できます

ここに写真の説明を挿入

8.キーワードと識別子

ここに写真の説明を挿入

  • すべてのキーワードにアクセスするには、次の2つの方法があります。
    ここに写真の説明を挿入
    ここに写真の説明を挿入
    ここに写真の説明を挿入
  • 識別子

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

9.オブジェクトなし

オブジェクトNoneは、データ値がないことを示すために使用されますが、オブジェクトNoneは、一定量のメモリスペースを占有する実際のオブジェクトです。名前に惑わされないでください。オブジェクトNoneは、「空」を意味するものではありません。または「定義されていない」、それは実際のオブジェクトです。
ここに写真の説明を挿入
組み込み関数id()を呼び出して、オブジェクトNoneのメモリアドレスをチェックし、それが特定のメモリスペースを占有しているかどうかを確認できます。

  • オブジェクトなしの使用シナリオ(オブジェクトなしを使用する場合)

Object Noneは、変数を初期化するため、または変数をデータ値が存在しない状態にリセットするためによく使用されます。
ここに写真の説明を挿入
変数aをNoneに初期化します。これは、aという名前のラベルをNoneオブジェクトにアタッチするのと同じです。このラベル名を使用して、オブジェクトNoneを出力します。この場合、変数をNoneで初期化します。

または、変数をデータ値が存在しない状態にリセットします。
ここに写真の説明を挿入

10.演算子の優先順位と関連性

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入



シーケンスタイプの範囲

ここに写真の説明を挿入
次に、範囲タイプのオブジェクトを作成します。

range(5)	# range(0, 5)

ここでは、startまたはstepを渡しませんでした。startが渡されない場合、startのデフォルト値は0です。stepが渡されない場合、このステップのデフォルト値は1です。
動作結果:

range(0, 5)

印刷された結果は、開始パラメーターを追加するのに役立ちましたが、それでも範囲オブジェクトによって表される整数シーケンスを明確に見ることができませんでした。
したがって、それをリストに変換できます。

print(list(range(5))	# [0, 1, 2, 3, 4]

このようにして、この範囲オブジェクトによって表される整数シーケンスを確認できます。

指定した停止値は5ですが、このシーケンスには5がないことに注意してください。4に達すると終了するため、作成された範囲オブジェクトに停止は含まれません。

print(list(range(5))		# [0, 1, 2, 3, 4]
print(list(range(0, 5, 1))	# [0, 1, 2, 3, 4]

組み込み関数範囲の戻り値は、実際にはイテレーターオブジェクトです。このイテレーターオブジェクトは、範囲オブジェクトによって表される整数のシーケンスを明確に表すことができないため、リストに変換します。
ここに写真の説明を挿入
ここに写真の説明を挿入

  • 範囲タイプの利点:

範囲タイプの利点は、範囲オブジェクトによって表される整数のシーケンスがどれほど長くても、すべての範囲オブジェクトが占めるメモリ空間が同じであるということです。なぜですか?これはどのように行われますか?
開始、停止、ステップの3つのパラメーターのみをシステムに格納する必要があるため、範囲オブジェクトを使用する場合にのみ、シーケンス内の関連する要素を計算します。
ここに写真の説明を挿入
後のコースでは、リスト、要素、文字列など、すべてシーケンスタイプである他のシーケンスタイプについても説明します。

  • のオペレーターとではないオペレーター

シーケンスタイプオブジェクトの場合、演算子in使用して、範囲オブジェクトによって表される整数のシーケンスに指定された整数があるかどうかを確認できます。
ここに写真の説明を挿入
その戻り値は、TrueまたはFalseのいずれかのブール値です。not in
使用て、指定した整数が範囲タイプオブジェクトに存在しないかどうかを確認することもできます。
ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/zhaopeng01zp/article/details/109325197