| 运算符 | 名称 | 说明 | 例子 | ||
|---|---|---|---|---|---|
+ |
加 | 两个对象相加 | 3 + 5得到8。'a' + 'b'得到'ab'。 |
||
- |
减 | 得到负数或是一个数减去另一个数 | -5.2得到一个负数。50 - 24得到26。 |
||
* |
乘 | 两个数相乘 或是 返回一个被重复若干次的字符串 | 2 * 3得到6。'la' * 3得到 'lalala' 。 |
||
** |
幂 | 返回x的y次幂 3 | \** 4得到81(即3 * 3 * 3 * 3) |
||
/ |
除 | x除以y | 4 / 3 得到 1.3333333333333333。 |
||
// |
取整除 | 返回商的整数部分 | 4 // 3得到1 |
||
% |
取模 | 返回除法的余数 | 8%3得到2。-25.5%2.25得到1.5 |
||
<< |
左移 | 把一个数的向左移若干比特位(每个数在内存中都表示为比特或二进制数字,即0和1) | 2 << 2得到8。——2按比特表示为10,左位移两bit位后得到1000,十进制中表示为8。 |
||
>> |
右移 | 把一个数的向右移若干比特位 | 11 >> 1 得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。 |
||
& |
按位与 | 数的按位与 | 5 & 3得到1。 |
||
| |
按位或 | 数的按位或 | 5 | 3得到7。 |
||
^ |
按位异或 | 数的按位异或 | 5 ^ 3得到6 |
||
~ |
按位翻转 | x的按位翻转是-(x+1) | ~5得到6。 |
||
< |
小于 | 返回x是否小于y。所有比较运算符返回布尔值True或False。请注意布尔值大小写敏感。 | 5 < 3返回False,3 < 5返回True。比较可以被任意连接,如3 < 5 < 7返回True。 |
||
> |
大于 | 返回x是否大于y | 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。 |
||
<= |
小于等于 | 返回x是否小于等于y | x = 3; y = 6; x <= y返回True。 |
||
>= |
大于等于 | 返回x是否大于等于y | x = 4; y = 3; x >= y返回True。 |
||
== |
等于 | 比较对象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
||
!= |
不等于 | 比较两个对象是否不相等 | x = 2; y = 3; x != y返回True。 |
||
not |
布尔“非” | 如果x为True,返回False。如果x为False,它返回True。 | x = True; not x返回False。 |
||
and |
布尔“与” | 如果x为False,x and y返回False,否则它返回y的计算值。 | x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。 |
||
or |
布尔“或” | 如果x是True,它返回True,否则它返回y的计算值。 | x = True; y = False; x or y返回True。短路计算在这里也适用。 |
| 运算符 | 描述 |
|---|---|
lambda |
Lambda表达式 |
or |
布尔“或” |
and |
布尔“与” |
not x |
布尔“非” |
in,not in |
成员测试 |
is,is not |
同一性测试 |
<,<=,>,>=,!=,== |
比较 |
| |
按位或 |
^ |
按位异或 |
& |
按位与 |
<<,>> |
移位 |
+,- |
加法与减法 |
*,/,% |
乘法、除法与取余 |
+x,-x |
正负号 |
~x |
按位翻转 |
** |
指数 |
x.attribute |
属性参考 |
x[index] |
下标 |
x[index:index] |
寻址段 |
f(arguments...) |
函数调用 |
(experession,...) |
绑定或元组显示 |
[expression,...] |
列表显示 |
{key:datum,...} |
字典显示 |
'expression,...' |
字符串转换 |
一个通用的标准格式说明语言如下:
1 | format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type] |
| 选项 | 作用 |
|---|---|
< |
强制在可用空间中左对齐(该选项对于大部分对象是默认选项) |
> |
强制在可用空间中右对齐(该选项对于数值型对象是默认选项) |
= |
强制在可用空间中在正负号(如果有的话)之后,有效数值之前进行填充。该选项常用于打印‘+000000120’这类数值。该对齐选项只对数值型对象可用。 |
^ |
强制在可用空间中居中对齐。 |
“sign”说明字符只可用于数值型参数,它用于确定是否打印正负号。
| 选项 | 作用 |
|---|---|
+ |
不管该数值为正数还是负数,都要打印正负号。 |
- |
只当该数值为负数时,才打印负号。(默认) |
SPC |
为正数输出空格,为负数输出负号。 |
用于字符串的有效类型有:
| 类型 | 用途 |
|---|---|
s |
字符串格式。字符串类型默认都会带上这个选项,因此允许忽略。 |
| 无 | 和s等效 |
用于整型的有效类型有:
| 类型 | 用途 |
|---|---|
b |
二进制形式。 |
d |
十进制形式。 |
o |
八进制形式。 |
x |
小写十六进制形式。 |
X |
大写十六进制形式。 |
c |
输出整数对应的Unicode字符。 |
n |
以场所敏感的方式输出数字。其作用与d相同。 |
| 无 | 和d等效 |
用于浮点数的有效类型有:
| 类型 | 用途 |
|---|---|
e |
使用小写字母e的指数形式 |
E |
使用大写字母E的指数形式 |
f |
标准的浮点形式 |
g |
“通常”格式,与f的作用等同,除非数字特别大(在这种情况下与e作用等同) |
G |
与g几乎等同,但总是使用f或E |
n |
以场所敏感的方式输出数字,其作用与g相同 |
% |
使用百分比的形式输出数字。产生的数字结果使用f并附加一个%字符的格式输出 |
| 无 | 与g相似,但小数点后至少保留一位数字,且默认精度为12。 |
除非在字符串前加上r或R,否则字符串中的转义序列将会根据既定的规则来进行解释,这些规则和标准的C语言类似。这些转义序列包括:
| 转义序列 | 含义 | 备注 |
|---|---|---|
\\ |
Backslash (\) |
|
\' |
Single quote (') |
|
\" |
Double quote (") |
|
\a |
ASCII Bell (BEL) |
|
\b |
ASCII Backspace (BS) |
|
\f |
ASCII Formfeed (FF) |
|
\n |
ASCII Linefeed (LF) |
|
\r |
ASCII Carriage Return (CR) |
|
\t |
ASCII Horizontal Tab (TAB) |
|
\v |
ASCII Vertical Tab (VT) |
|
\ooo |
Character with octal value ooo |
(1,3) |
\xhh |
Character with hex value hh |
(2,3) |
只能用在字符串里的转义序列有:
| 转义序列 | 含义 | 备注 |
|---|---|---|
\N{name} |
Character named name in the Unicode database | (4) |
\uxxxx |
Character with 16-bit hex value xxxx |
(5) |
\Uxxxxxxxx |
Character with 32-bit hex value xxxxxxxx |
(6) |
备注: