一.运算符
引言
将需要处理的数据(如常量、变量、函数等),通过运算符按一定的规则连接起来的组合称为表达式。和表达式相关的是运算符,如果一个运算符需要两个变量参与,则它是双目运算符;如果只需要一个变量参数,则它是单目运算符。当然三目运算符也是存在的。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)