一.运算符

引言

将需要处理的数据(如常量、变量、函数等),通过运算符按一定的规则连接起来的组合称为表达式。和表达式相关的是运算符,如果一个运算符需要两个变量参与,则它是双目运算符;如果只需要一个变量参数,则它是单目运算符。当然三目运算符也是存在的。Python 中的运算符分为六大类,分别是数学运算符、比较运算符、赋值运算符、位运算符、身份运算符和逻辑运算符。

1.数学运算符

处理的对象:数字类型
变量参数:两个变量(双目运算符)
结果类型:数字类型

运算符类型

运算符类型

示例

+

用于加法计算

4+6

-

用于减法计算

6-2

*

用于乘法计算

2*3

/

用于除法计算

6/2

%

用于取模(除法取余)计算

10%3 ( 结果为1)

**

用于乘方(幂运算)计算

2**4 (结果为16)

//

用于整除(针对浮点数)计算

10.0/3 (结果为3.0)

Python 不支持 C 语言中的++(自增 1)运算符和–(自减 1)运算符,Python 有自己的自增、自减赋值方法.

2.比较运算符

处理的对象:数字类型
变量参数:两个变量(双目运算符)
结果类型:数字类型

运算符类别

描 述

示 例

==

是否相等

6==6 结果为 True

!=

是否不相等

3!=3 结果为 False

>

是否大于

6>4 结果为 False

<

是否小于

3<6 结果为 True

>=

是否大于等于

6>=6 结果为 True

<=

是否小于等于

3<=4 结果为 True

比较运算符除了可以用于比较数值和逻辑对象,也可以用于比较容器对象.

3.赋值运算符

处理的对象:数字类型,字符类型等
变量参数:,一个变量(单目运算符)两个变量(双目运算符)
结果类型:原类型

运算符类别

描 述

示 例

=

简单赋值

a=6、b1=‘abc’、d1=a+2

+=

自加赋值

a+=1 (等效于 a=a+1,类似于 C 语言中的 a++)

-=

自减赋值

a-=b ( 等效于 a=a-b)

*=

自乘赋值

a*=b ( 等效于 a=a*b)

/=

自除赋值

a/=b (等效于 a=a/b)

%=

自取模赋值

a%=b (等效于 a=a%b)

**=

自乘方赋值

a**=b (等效于 a=a**b)

//=

自整除赋值

a//=b (等效于 a=a//b)

赋值语句支持交叉赋值方式,如下

a,b = b,a

4.位运算符

位运算符用于处理二进制位。Python 共有 6 种位运算符,其中有 3 个双目运算符、3 个单目运算符。

运算符类别

描 述

示 例

&

与运算(双目)

1&1=1 1&0=0 0&1=0 0&0=0

或运算(双目)

^

异或运算(双目)

1^1=0 1^0=1 0^1=1 0^0=0

~

获取整数的相反数,但绝对值会偏移 1(单目)

~1=-2 ~0=-1 整数的取反操作,由于补码的原理,同一对相反数中,负数的绝对值总是多 1

<<

左移 n 位,右侧多出的 n 位均以 0 填充。如果处理数字,本质上相当于乘以 2 的 n 次幂。(单目)

5 << 2 = 20 128<<2 = 256

>>

向右移 n 位,右侧超出的 n 位均被舍弃。如果处理数字,本质上相当于整除以 2 的 n 次幂。(单目)

15 >> 2 = 3 128>>2 = 64

或运算符,因编译器的问题,打不出来,实例如下

1|1=1 1|0=1 0|1=1 0|0=0  #类别为"|"

5.身份运算符

Python 中的对象包含三要素:id、type、value.

要素

描述

id

对象的身份,用来唯一标识一个对象,本质上是对象在内存中的逻辑地址

type

标识对象的数据类型

value

对象的值

关键字 is 用于判断 id 或 type。

b = a
a is b
输出结果为:
True
a = 2
 type(a) is int   
输出结果为:
True

is 还可以用于判断对象是否属于一个容器(包括列表、元组、字典或集合)

is not,它用来判断对象 a 是否不是对象 b,或 a 是否不属于容器 c

判断对象是否属于一个容器,也可以使用 in 或 not in。

a1 = [1,2,3,4]
3 in a1
输出结果为:
True

6.逻辑运算符

与运算表达式

结 果

或运算表达式

结 果

非运算表达式

结 果

True and True

True

True or True

True

not True

False

False and True

False

False or True

True

not not True

True

True and False

False

True or False

True

not False

True

False and False

False

False or False

False

not not False

False

7.运算符的优先级

优先级先在左列从低到高排列,然后在右列从低到高排列。

运 算 符

描 述

运 算 符

描 述

or

布尔或

^

按位异或

and

布尔与

&

按位与

not x

布尔非

<<、>>

移位

in、not in

成员测试

+、-

加减法

is、is not

同一性测试

+x、-x

正负号

<、<=、>、>=、!=、==

比较运算

~x

按位翻转

按位或

**

指数计算

按位或是" | "

二.变量名

1.规定

变量名也称标识符,只能以字母或下画线开头,不能是数字或其他字符。变量名的其他部分可以由字母、下画线和数字组成。变量名对大小写敏感,变量不能是任何 Python 的保留字(关键字)

2.保留字

and

exec

not

def

if

return

assert

finally

or

del

import

try

break

for

pass

elif

in

while

class

from

print

else

is

with

continue

global

raise

except

lambda

yield

3.约定俗称的规则

1)常量全部大写,如果常量名由多个单词构成,则使用下画线分隔,如 CONST_NAME。

2)类名首字母大写,如果类名由多个单词构成,则每个单词的首字母大写,如 ClassName。

3)对于单个单词构成的变量,单词全部使用小写。如果变量名由多个单词构成,首个单词全部小写,其他单词的首字母大写(驼峰命名法);也可以每个单词都使用小写,并通过下画线来分隔,如 var、varName 或 var_name。

三.转义字符

转 义 字 符

描 述

转 义 字 符

描 述

转 义 字 符

描 述

\

续行符

\v

纵向制表符

\

反斜杠“\”

\t

横向制表符


单引号

\r

回车

"

双引号

\f

换页

\a

响铃

\yy

使用一个八进制数,代表对应的 ASCII 字符

\b

退格

\xyy

使用一个十六进制数,代表对应的 ASCII 字符

\e

转义

\other

其他字符以普通格式输出

\n

换行

四.注释

Python 中有两种注释方式,
一种是单行注释,以#作为注释的开头,在#之后直到当前行的末尾,所有的字符均被视为注释,解释器会忽略掉注释,不予执行。

#a=1

另一种注释是多行注释,如果使用三重引号将多行字符引起来,则这些连续的行会被视为多行字符串,同时也可以作为多行注释。需要注意的是,必须使用统一的双引号或单引号,不能一端是双引号而另一端是单引号。

"""hello 
    world"""

五.单行多语句与单句跨行

1.单行多语句(不推荐)
在一行语句的结尾写上分号,然后不换行,接着写第二行语句.

a=3;b=6;print(a+b)

2.单句跨行
现在的宽屏显示器单屏显示超过 256 列字符,Python 规范仍然坚持行的最大长度不得超过 78 个字符的标准(除非长的导入模块语句或注释里的 URL)。对于超长的行,可采用两种常用的方法来缩短宽度。
1)在括号(包括圆括号、方括号和花括号)内换行建议采用

list2=[
   'anna', 
   'elsa',
   'christophe',
   'hans',
]

2)在长行中加入续行符(即反斜杠“\”)强行断行,然后在下一行书写其余内容,它们仍然被 Python 解释器视为单独的一行。
约定俗成地,续行符应放在表达式的操作符前,且换行后多一层缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行。

print(1\
      +2)