操作符可分為運算子(operators)和分隔符(delimiters)。
運算子有:
+
,-
,*
,**
,/
,//
,%
,詳細用法見 數字運算。
<<
,>>
,&
,|
,^
,~
,詳細用法見 整數及其位運算。
<
,>
,<=
,>=
,==
,!=
,in
,not in
,is
,is not
,詳細用法見 比較運算子。
and
,or
,not
,詳細用法見 布林值及布林運算。
python 3.8 新增,將右邊的表示式賦值給左邊的變數, 同時返回表示式的值。
(a :=1
+1)
2
運算子還分為一元運算子和二元運算子,一元運算子運算乙個物件(運算元),二元運算子運算兩個。一元運算子有+
(正數),-
(負數),~
(整數按位取反)和not
(布林運算 非)。if ... else ...
有時稱作三元運算子。
-1,
+2,~
3,not4
(-1, 2, -4, false)
1+2
-3*4
# 二元運算子加、減和乘
-9
trueif2
>
3else
false
false
分隔符有:
(
,)
,[
,]
,,
,
,:
,.
,;
,=
,+=
,-=
,*=
,/=
,//=
,%=
,&=
,|=
,^=
,>>=
,<<=
,**=
部分分隔符用法舉例:
圓括號繫結表示式,或元組顯示,方括號用來對序列進行索引、切片取值或列表顯示,花括號字典顯示或集合顯示
3*(
1+2)
*(1,
)
(1, 1, 1, 1, 1, 1, 1, 1, 1)
[1,
2,3,
4][1
:3]
[2, 3]
}
}
上述分隔符=
為賦值操作符,之後的操作符為增強賦值操作符,將名稱繫結(或重新繫結)到特定值,以及修改屬性或可變物件的成員項。 詳見 賦值語句。
假設將值 value1 繫結到名稱 name,name = value1
,則name += value2
的結果相當於name = name + value2
,其他操作符類似。
舉例如下:
a =
1a +=
1a
2
b =
17b |=5
b
21
除了運算子和分隔符,還有'
,"
,\
,#
字元,作為其他字元的組成部分時具有特殊含義,或是對詞法分析器有重要意義。
'
,"
,\
,詳見 字串概述 和 轉義字元。
#
通常用來注釋**,但不能包含在字串中,注釋在語法分析中會被忽略:
# 這是注釋
'''# hello world
# hello python
'''
'\n# hello world\n# hello python\n'
操作符除了常規的用法,操作不同的資料型別,相應的資料型別可能定義了特定的操作規則;在特定的應用場景,也有著特殊的用法。詳見 操作符特殊用法 c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
linq操作符 限定操作符
限定操作符運算返回乙個boolean值,該值指示序列中是否有一些元素滿足條件或者是否所有元素都滿足條件。一 all操作符 all方法用來確定是否序列中的所有元素都滿足條件。看下面的例子 1 using system 2using system.collections.generic 3using s...
前置操作符和後置操作符
操作符可以被過載 全域性函式和成員函式均可以進行過載 過載前置 操作符不需要額外的引數 過載後置 操作符需要乙個int型別的佔位引數 來看乙個例子 include include using namespace std class test intvalue test operator test o...