运算符

运算符 名称 说明 例子
+ 两个对象相加 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返回False3 < 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返回Truex = 'str'; y = 'stR'; x == y返回Falsex = '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 布尔“非”
innot in 成员测试
isis not 同一性测试
<<=>>=!=== 比较
| 按位或
^ 按位异或
& 按位与
<<>> 移位
+- 加法与减法
*/% 乘法、除法与取余
+x-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum,...} 字典显示
'expression,...' 字符串转换

format

一个通用的标准格式说明语言如下:

1
2
3
4
5
6
7
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::=
align ::= "<" |="" "="">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "o" | "s" | "x" | "X" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "%"

align 对齐选项

选项 作用
< 强制在可用空间中左对齐(该选项对于大部分对象是默认选项)
> 强制在可用空间中右对齐(该选项对于数值型对象是默认选项)
= 强制在可用空间中在正负号(如果有的话)之后,有效数值之前进行填充。该选项常用于打印‘+000000120’这类数值。该对齐选项只对数值型对象可用。
^ 强制在可用空间中居中对齐。

sign 符号选项

“sign”说明字符只可用于数值型参数,它用于确定是否打印正负号。

选项 作用
+ 不管该数值为正数还是负数,都要打印正负号。
- 只当该数值为负数时,才打印负号。(默认)
SPC 为正数输出空格,为负数输出负号。

用于字符串的有效类型有:

类型 用途
s 字符串格式。字符串类型默认都会带上这个选项,因此允许忽略。
s等效

用于整型的有效类型有:

类型 用途
b 二进制形式。
d 十进制形式。
o 八进制形式。
x 小写十六进制形式。
X 大写十六进制形式。
c 输出整数对应的Unicode字符。
n 以场所敏感的方式输出数字。其作用与d相同。
d等效

用于浮点数的有效类型有:

类型 用途
e 使用小写字母e的指数形式
E 使用大写字母E的指数形式
f 标准的浮点形式
g “通常”格式,与f的作用等同,除非数字特别大(在这种情况下与e作用等同)
G g几乎等同,但总是使用fE
n 以场所敏感的方式输出数字,其作用与g相同
% 使用百分比的形式输出数字。产生的数字结果使用f并附加一个%字符的格式输出
g相似,但小数点后至少保留一位数字,且默认精度为12。

转义序列

除非在字符串前加上rR,否则字符串中的转义序列将会根据既定的规则来进行解释,这些规则和标准的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)

备注:

  1. 和标准C相同,最多可以接收三个数位作为八进制数;
  2. 与标准C不同,一个十六进制数由确切的两个数位表示;
  3. 在字节的语法中,十六进制和八进制转义符使用给定的值表示字节。在字符串的语法中,这些转义符使用给定的值表示一个Unicode字符。
  4. 从3.3版本开始,支持使用别名(alias);
  5. 被编码为一对16比特长的码元(即32bit,4Bytes),称作代理对(surrogate pair)。代理对可以使用这个转义序列来编码。共需要4个十六进制数位。
  6. 任意Unicode字符可以使用这个方式编码。共需要8个十六进制数位。