Pythonは、次のタイプの演算子をサポートしています。
算術演算子は、加算、減算、乗算、除算、残差などです。
以下では、実際のコードを使用して、Pythonでのすべての算術演算子の使用法を示しています。
1. a =212.b =103.c =04.5.c = a + b
6. print("1 - a +bの後のcの値は次のとおりです。", c)7.8.c = a - b
9. print("2 - a -bの後のcの値は次のとおりです。", c)10.11.c = a * b
12. print("3 - a *bの後のcの値は次のとおりです。", c)13.14.c = a / b
15. print("4 - a /bの後のcの値は次のとおりです。", c)16.17.c = a % b
18. print("5 - a %bの後のcの値は次のとおりです。", c)19.20.#変数の再割り当て:a、b、c
21. a =222.b =323.c = a ** b
24. print("6 -2の3乗は次のとおりです。", c)25.26.a =1027.b =628.c = a // b29.print("7 -10を6で割った整数部分は次のとおりです。", c)
操作結果:
1-a + bの後のcの値は次のとおりです。31
2-a-bの後のcの値は次のとおりです:11
3-a * bの後のcの値:210
4-a / bの後のcの値は次のとおりです。2.1
5-%bの後のcの値は次のとおりです:1
6-2の3乗は次のとおりです:8
7-10を6で割った整数部分は次のとおりです:1
比較演算子にはブール値の戻り値があります
以下では、実際のコードを使用して、Pythonでのすべての比較演算子の使用法を示しています。
1. a =212.b =103.c =04.5.if(a == b):6.print("1 -aはbに等しい")7.else:8.print("1 -aはbと等しくありません")9.10.if(a != b):11.print("2 -aはbと等しくありません")12.else:13.print("2 -aはbに等しい")14.15.if(a < b):16.print("3 -aはb未満です")17.else:18.print("3 -aがb以上")19.20.if(a > b):21.print("4 -aがbより大きい")22.else:23.print("4 -aがb以下")24.25.#変数aとbの値を変更します
26. a =5;27.b =20;28.if(a <= b):29.print("5 -aがb以下")30.else:31.print("5 -aがbより大きい")32.33.if(b >= a):34.print("6 -bがa以上")35.else:36.print("6 -bはa未満です")
操作結果:
1-aはbと等しくありません
2-aはbと等しくありません
3-aがb以上
4-aがbより大きい
5-aがb以下
6-bがa以上
昔から課題演算子を使っていましたが、複合課題演算子は、算術演算子を組み合わせて、課題と同時に算術演算を実行します。
以下では、実際のコードを使用して、Pythonでのすべての割り当て演算子の使用方法を示します。
1. a =212.b =103.c =04.5.c = a + b
6. print("1 -cの値は次のとおりです。", c)7.8.c += a
9. print("2 -cの値は次のとおりです。", c)10.11.c *= a
12. print("3 -cの値は次のとおりです。", c)13.14.c /= a
15. print("4 -cの値は次のとおりです。", c)16.17.c =218.c %= a
19. print("5 -cの値は次のとおりです。", c)20.21.c **= a
22. print("6 -cの値は次のとおりです。", c)23.24.c //= a25.print("7 -cの値は次のとおりです。", c)
操作結果:
1-cの値:31
2-cの値:52
3-cの値は1092です。
4-cの値:52.0
5-cの値は次のとおりです:2
6-cの値は:2097152
7-cの値は:99864
コンピュータの最小単位はビットです。ビット単位の演算子は、計算を実行するために数値をバイナリとして扱います。一般に、演算子はあまり使用されません。次の図に示すように、一部の特殊なケースのみがインプレース演算子を使用します。
次の表では、変数aは60、bは13で、バイナリ形式は次のとおりです。
a = 0011 1100
b = 0000 1101
例えば:
&:そして、両方の当事者が1の場合、それは1になり、一方が0の場合、それは0になります。例:
0000 0111
0001 0111
結果:
0000 0111
| :または、一方のパーティが1の場合、それは1であり、両方のパーティは0から0になります。例:
0001 0101
1001 0111
結果:
1001 0111
~ :なし、否定、0は1を否定し、1は0を否定します。たとえば
0000 0000 0000 0000 0000 0000 1001 0111
結果:
1111 1111 1111 1111 1111 1111 0110 1000
^ :排他的OR、等しくないのと同様に、両側が1の場合、両側が0か0かに関係なく、0になります。
どちらのパーティも1でも0でも1でない場合、例:
0001 0101
1001 0111
結果:
1000 0010
">>":右に移動し、2桁を右に移動し、負の数の上位桁に1を追加し、正の数の上位桁に0を追加します。例:
正の数:6 >> 2
0000 0110
結果:
0000 0001
負の数:
1111 1111 1111 1111 1111 1111 1111 1010
結果:
1111 1111 1111 1111 1111 1111 1111 1110
"<<":左にシフトし、左に2桁、正と負の両方の数値が0の最後の桁です。例:
正の数:6 << 2
0000 0110
結果:
0001 1000
負の数:
1111 1111 1111 1111 1111 1111 1111 1010
結果:
1111 1111 1111 1111 1111 1111 1110 1000
コード例:
1. a =60 # 60=001111002.b =13 # 13=000011013.c =04.5.c = a & b; # 12=000011006.print("1 -cの値は次のとおりです。", c)7.8.c = a | b; # 61=001111019.print("2 -cの値は次のとおりです。", c)10.11.c = a ^ b; # 49=0011000112.print("3 -cの値は次のとおりです。", c)13.14.c =~a; # -61=1100001115.print("4 -cの値は次のとおりです。", c)16.17.c = a <<2; # 240=1111000018.print("5 -cの値は次のとおりです。", c)19.20.c = a >>2; # 15=0000111121.print("6 -cの値は次のとおりです。", c)
操作結果:
1-cの値:12
2-cの値:61
3-cの値は次のとおりです:49
4-cの値は次のとおりです:-61
5-cの値:240
6-cの値:15
Pythonは論理演算子をサポートし、他の言語は&&、||、!を使用してandまたはnotを表します。Pythonでは、and、or、notはandまたはnotを表すために使用されます
以下では、変数aが10、bが20であると想定しています。
例えば:
および:そして同時に意味します:値の1つが偽である限り、結果が偽である限り、両方の当事者の値が真であるかどうかを比較します。例えば:
ABの結果
true and false false
false and true false
true and true true
false and false false
and演算子を使用すると、前の値がtrueになり、後者は実行を継続してtrueかどうかを確認します。前の値がfalseの場合、条件が確立されなくなったため、後者は再度実行されません。
または:または、yesの意味または:2つのパーティの値を比較して、値の1つが真である限り、結果が真であるかどうかを確認します。例えば:
ABの結果
true or false true
false or true true
true or true true
false or false false
or演算子を使用すると、前の値がtrueになります。条件が確立されているため、後者は実行されません。前の値がfalseの場合は、実行を続行してtrueまたはfalseを確認します。
not:いいえ、それは否定を意味します:値がtrueである限り、結果はfalseであり、falseの結果はtrueです。それは逆を意味します。例えば:
結果ではない
true not false
false not true
コード例:
1. a =102.b =203.4.if(a and b):5.print("1 -変数aとbは両方とも真です")6.else:7.print("1 -変数aとbの1つが真ではありません")8.9.if(a or b):10.print("2 -変数aとbは両方とも真です,或其中一个变量为 true")11.else:12.print("2 -変数aとbは真ではありません")13.14.15.16.#変数aの値を変更します
17. a =018.if(a and b):19.print("3 -変数aとbは両方とも真です")20.else:21.print("3 -変数aとbの1つが真ではありません")22.23.if(a or b):24.print("4 -変数aとbは両方とも真です,或其中一个变量为 true")25.else:26.print("4 -変数aとbは真ではありません")27.28.ifnot(a and b):29.print("5 -変数aとbの両方が偽であるか、変数の1つが偽です")30.else:31.print("5 -変数aとbは両方とも真です")
操作結果:
1-変数aとbの両方が真
2-変数aとbの両方が真であるか、変数の1つが真である
3-変数aとbの1つが真ではない
4-変数aとbの両方が真であるか、変数の1つが真である
5-変数aとbの両方が偽であるか、変数の1つが偽である
上記の演算子の一部に加えて、Pythonはメンバー演算子もサポートしています。メンバー演算子は、値が配列(リスト)にあるかどうか(リスト)を見つけるために使用されます。
以下では、実際のコードを使用して、Pythonでのすべてのメンバー演算子の使用法を示しています。
1. a =102.b =203.list =[1,2,3,4,5];4.5.if(a in list):6.print("1 -変数aは指定されたリストにあります")7.else:8.print("1 -変数aは指定されたリストにありません")9.10.if(b not in list):11.print("2 -変数bは指定されたリストにありません")12.else:13.print("2 -変数bは指定されたリストにあります")14.15.#変数aの値を変更します
16. a =217.if(a in list):18.print("3 -変数aは指定されたリストにあります")19.else:20.print("3 -変数aは指定されたリストにありません")
操作結果:
1-変数aが指定されたリストにありません
2-変数bが指定されたリストにありません
3-変数aは指定されたリストにあります
ID演算子は、2つの変数の参照オブジェクトが同じかどうかを比較するために使用されます
注: id()関数は、オブジェクトのメモリアドレスを取得するために使用されます。
以下では、実際のコードを使用して、PythonでのすべてのID演算子の使用法を示しています。
1. a =202.b =203.4.if(a is b):5.print("1 -aとbは同じ参照オブジェクトを持っています")6.else:7.print("1 -aとbに同じ参照オブジェクトがありません")8.9.if(id(a)==id(b)):10.print("2 -aとbは同じ参照オブジェクトを持っています")11.else:12.print("2 -aとbに同じ参照オブジェクトがありません")13.14.#変数bの値を変更します
15. b =3016.if(a is b):17.print("3 -aとbは同じ参照オブジェクトを持っています")18.else:19.print("3 -aとbに同じ参照オブジェクトがありません")20.21.if(a is not b):22.print("4 -aとbに同じ参照オブジェクトがありません")23.else:24.print("4 -aとbは同じ参照オブジェクトを持っています")
操作結果:
1-aとbは同じ参照オブジェクトを持っています
2-aとbは同じ参照オブジェクトを持っています
3-aとbに同じ参照オブジェクトがありません
4-aとbに同じ参照オブジェクトがありません
isと==の違い:
isは、2つの変数参照オブジェクトが同じであるかどうかを判別するために使用されます。==は、参照変数の値が等しいかどうかを判別するために使用されます。
1.>>> a =[1,2,3]2.>>> b = a
3.>>> b is a
4. True
5.>>> b == a
6. True
7.>>> b = a[:]8.>>> b is a
9. False10.>>> b == a
11. True
次の例は、Pythonでのすべての演算子の優先順位の操作を示しています。
1. a =202.b =103.c =154.d =55.e =06.7.e =(a + b)* c / d #(30*15)/58.print("(a + b) * c /d操作の結果は次のとおりです。", e)9.10.e =((a + b)* c)/ d # (30*15)/511.print("((a + b) * c) /d操作の結果は次のとおりです。", e)12.13.e =(a + b)*(c / d); # (30)*(15/5)14.print("(a + b) * (c / d)操作の結果は次のとおりです。", e)15.16.e = a +(b * c)/ d; # 20+(150/5)17.print("a + (b * c) /d操作の結果は次のとおりです。", e)
操作結果:
(a + b)* c / d操作の結果は次のとおりです:90.0
((a + b)* c)/ d操作の結果は次のとおりです:90.0
(a + b)*(c / d)操作の結果は次のとおりです:90.0
a +(b * c)/ d操作の結果は次のとおりです。50.0
Recommended Posts