パイソンの第II章の基本的な構文
演算子3.1
オペレータは何ですか?実際には、非常に単純な、私たちは、数学演算子で数学を学んだだけでなく、代入文「等号」の前に学ぶことも演算子です。多くの高レベルのプログラミング言語、一般的に使用される演算子が学習のコストを削減することができ、一般的に基本的に同じ演算子を使用し、Java等、Cは、JavaScriptのように、同じになるように設計されます。そして、オペレータは、非常に一般的なので、通常の準備の効率を向上させるためには、比較的単純で理解しやすいように設計されています。ここでは、これらは単に見た目以上に思い出すことができない、覚えておくべき使用とは、具体的に覚えておく必要はありません、Pythonはオペレータだったが、Duokanjibianは覚えています。
1は、Pythonの演算子は、いくつかのカテゴリに分類され:(私が覚えているものを取ることはありません分類するもの)だけ覚えているか、都合のよいときに参照する以上は何もありません
算術演算子
比較(関係)演算子
代入演算子
論理演算子
ビット演算子
会員事業者
アイデンティティオペレータ
以下の使用例は、A = 3、B = 4
①算術演算子
(追加、数学的に類似したの使用と引き算私たちの小さな導入、が、ちょうど数字は、文字列は乗算、追加することができ、私たちは私たちの後ろの文字列について話して、手の込んだされているわけではないことに留意されたいです)
演算子 | 説明 | 例えば |
+ | プラス | わずかに |
- | マイナス | わずかに |
* | 乗算 | わずかに |
/ | 除きます | わずかに |
% | 残りを取ります | >>> Bの%のA 1 |
** | べき乗、対応電卓X Y | >>> ** B 81 |
// | ラウンドではない、小さい整数である方、割り切れるください | >>> 5 // 2 2 >>> -5 // 2 -3 |
②比較演算子
比較のために使用される比較演算子は、例えば、以下のか、我々はすべてを知っている、のような、より大きいが、我々は多くの論理演算を提供する比較演算子を使用することができ、例えば、今8時30分で、分分の数です30、より高い場合は、我々はよりも、アラームを設定したり、比較演算子必要とする、私たちを思い出させるために、時刻の45分に等しい「以上での。」比較演算子は、非常に一般的であり、以下のとおりです。
演算子 | 説明 | 例えば |
== | イコールは、平等のためのオブジェクトを比較します | >>> == bは 偽 |
!= | これは、比較対象が等しくない、等しくありません | >>>!= bの 真 |
> | グレーター比較は前回の対象オブジェクトよりも大きい場合、より | >>>> B はFalse |
< | 以下、より比較が少なく、以前のターゲットオブジェクトを超える場合 | >>> <B 真 |
> = | 比較は前回の目標オブジェクト以上であれば以上、後 |
>>>> = Bの 偽 |
<= | 以下、比較の前にオブジェクトの後のオブジェクトは、以下であるか否か |
>>> <= B 真 >>> 4 <= B 真 |
③代入演算子
我々は、上記の変数が等しい数である変数C = 10がある場合、我々は、C = 11を書き込むことができ、これを与えるために1を加算代入演算子によって割り当てられていることを知っています。私たちは何をどのくらいのcの値を知りませんが、したい場合は、この値はプラス1は、書き方をすべきですか?C = C + 1、cの値をc + 1に代入した後、再び話し、私たちは数学で私たちの習慣で、右から左に読む1 + 1 = 2は同じではないことを意味し、これではありません書き込むことができます関係比較。パイソン容易書き込みC = C + 1このような共通するように設計、例えばC = C + 1として等簡略設計代入演算子+ =演算子は、C + = 1と略記することができます。
演算子 | 説明 | 例えば |
= | 代入演算子は、等号の操作権の結果は左に割り当てられています | わずかに |
+ = | 加算演算子、等号オブジェクトの左のプラス等号の右辺の計算結果は、等号の左辺は、結果に割り当てられています | わずかに |
- = | 減算演算子、等号ターゲットの左側にマイナス等号の右側の演算結果は、結果が等号の左側に割り当てられています | B - A - = B = Bと同等です |
* = | 乗算演算、減算演算子同様に |
わずかに |
/ = | 除算演算子、減算演算子のアナロジーへ |
わずかに |
%= | 剰余演算、減算演算子同様に |
わずかに |
** = | べき乗演算、減算演算子同様に |
わずかに |
// = | 割り切れるオペレータに減算演算子のアナロジーを取ります |
わずかに |
:= | (それはゾウアザラシのように見えるので、命名)セイウチ演算子、式は内部変数に割り当てることができます。新しい演算子Python3.8後 | IFは(N:= LEN(A))> 10: :印刷(F "は、({N})は、nの値を印刷する") 以下以前に使用されていない書き込まよりlenを一度呼び出さこの例セイウチオペレータに用いられます( ) |
④ビット演算子
我们如果有阅读附录一二进制相关的内容,我们就能了解什么是位的概念,也就是二进制的换算。位的计算在一些领域的使用还是蛮多的,读取文件也可以按位读取。这里不详细讲位运算,具体可以看附录一的内容,这里我们认识这些符号即可。
(按8位二进制换算,a = 3 = 0000 0011, b = 4 = 0000 0100)
运算符 | 描述 | 举例 |
& | 按位与运算符。两个值的与运算,两个相应位置都为1,该位为1,否则为0。 | a & b 换算二进制其结果为0000 0000,即为0 |
| | 按位或运算符。两个值的或运算,相应位置有一个为1,该位为1,否则为0。 | a | b 换算二进制其结果为0000 0111,即为7 |
^ | 按位异或运算符。两个值的异或运算,相应位置不同,该位为1,否则为0。 | a ^ b 换算二进制其结果为0000 0111,即为7 |
~ | 按位取反运算符。0变成1, 1变成0。 | ~a 换算二进制为 11111 1100,即为252 |
<< | 左移运算符。该值的二进制位全部左移若干位,高位超出的丢弃,低位补0 | a << 2 换算二进制为 0000 1100,即为12 |
>> | 右移运算符。该值的二进制位全部右移若干位,低位超出的丢弃,高位补0 |
a >> 1 换算二进制为 0000 0001,即为1 |
⑤ 逻辑运算符
Python在设计逻辑运算符算是蛮有意思的,别的编程语言一般都是使用特殊字符,而Python并没有,比如用Python表示并的关系,用的是“and”,十分口语化,很多编程语言用的是“&&”,和位运算符相对应。逻辑运算符是十分常用的运算符,比如我们设计一个程序,用来筛选语数英三门功课都考90分以上的同学,如果使用条件判断语句没有使用逻辑运算符,我们就需要判断三次:
第一步,筛选“语文成绩 > 90”的同学;第二步,在这批筛选好的同学里面,再筛选
“数学成绩 > 90”的同学;第三步
,在这批筛选好的同学里面
,再筛选
“英语成绩 > 90”的同学。
但是如果使用逻辑运算符and,就只需要一步就能筛选:
筛选
“语文成绩 > 90” and
“数学成绩 > 90” and
“英语成绩 > 90” 的同学。
运算符 | 表达式 | 描述 | 举例 |
and | x and y | 与,如果x为False,x and y 返回False,否则返回y的计算值 | >>> 1 > 0 and 3 <= 5 True >>> 10 and 3 3 >>> 1 > 0 and 3 3 |
or | x or y | 或,如果x为True,返回x的值,否则返回y的计算值 | >>> 1 > 0 or 3 <= 5 True >>> 10 or 3 10 >>> 1 < 0 or 3 3 |
not | not x | 非,True变成False,False变为True | >>> not 3 False >>> not 0 # 0表示False True >>> not 1 False >>> not 1 > 0 False |
⑥ 成员运算符
成员运算符也是常用的运算符,表示某对象在不在某对象里面,比如“123”这个字符串,就被包含于“456123456”这个比较长的字符串里面。
(举例使用a = "123", b = "456123456", c = "789")
运算符 | 描述 | 举例 |
in | 判断指定对象是否在另一对象里面,有则True,没有则False |
>>> a in b True >>> a in c False |
not in | 判断指定对象是否不在另一对象里面,没有则True,有则False | >>> c not in b True >>> c not in a True >>> c not in c False |
⑦ 身份运算符
身份运算符用来判断两个对象是不是同一个。比如说,变量a = 1,变量b = 1,数值相等,如果使用比较运算符 == ,判断结果是相等的,但是如果两个变量存储的数值在内存中分别存在两个位置,存储单元id不同,则用身份运算符对比是不同的。
运算符 | 描述 | 举例 |
is | 判断两个对象是否引用自同一个地址空间 | >>> a = [1,2] >>> b = [1,2] >>> a == b True >>> a is b False >>> a is not b True |
is not |
判断两个对象是否不是引用自同一个地址空间 |
2、运算符优先级问题。Python的运算符这么多,优先级是怎样的,比如,我们在数学上使用加法和乘法混合时,都会先计算乘法,那么Python会不会也先计算乘法呢?实验结果如下:
由上面结果可知,Python是有按照我们数学上的使用习惯先计算乘法再计算加法,下面表格列举了运算符的优先级顺序,由高到低排列。
运算符 | 描述 |
** | 指数,求幂(最高优先级) |
~ | 按位翻转 |
*、/、%、// | 乘、除、求余、取整除 |
+、- | 加、减 |
<<、>> | 左移、右移 |
& | 按位与 |
^、| | 位运算符 |
>、 <、 >=、 <= | 比较运算符 |
==、!= | 等于运算符 |
=、 +=、 -=、 *=、 /=、 %=、 //=、 **= | 赋值运算符 |
is、 is not | 身份运算符 |
in、 not in | 成员运算符 |
and、 or、 not | 逻辑运算符 |