运算符
算数运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 - 两个对象相加 | a+b输出结果 30 |
| - | 减 - 得到负数 或是一个数减去另一个数 | a-b输出结果 -10 |
| * | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a*b输出结果 200 |
| / | 除 - x除以y | b/a 输出结果 2 |
| % | 取模 - 返回除法的余数 | b%a输出结果 0 |
| ** | 幂 - 返回x的y次幂 | a**b为10的20次方,输出结果10000000000000000000 |
| // | 取整除 - 返回商的整数部分 | 9//2输出结果4, 9.0//2.0输出结果4.0 |
比较运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 - 比较对象是否相等 | (a==b)返回False |
| != | 不等于 - 比较两个对象是否不相等 | (a!=b)返回True |
| <> | 不等于 - 比较两个对象是否不相等 | (a<>b)返回True。这个运算符类似!= |
| > | 大于 - 返回x是否大于y | (a>b)返回False |
| < | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊变量True和False等价,注意这些变量名的大写 | (a<b)返回True |
| >= | 大于等于 - 返回x是否大于y | (a>=b)返回False |
| <= | 小 于等于 - 返回x是否小于y | (a<=b)返回True |
赋值运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符 | c=a+b将a+b的运算结果赋值为c |
| += | 加法赋值运算符 | c+=a等效于c=c+a |
| -= | 减法赋值运算符 | c-=a等效于c=c-a |
| *= | 乘法赋值运算符 | 等效于c=c*a |
| /= | 除法赋值运算符 | c/=a等效于c=c/a |
| %= | 取模赋值运算符 | c%=a等效于c=c%a |
| **= | 幂赋值运算符 | 等效于c=c**a |
| //= | 取整除赋值运算符 | c//=a等效于c=c//1 |
逻辑运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| and | 布尔”与” - 如果x为False,x and y返回False,否则它返回y的计算值 | (a and b)返回True |
| or | 布尔”或” - 如果x是True,它返回True,否则它返回y的计算值 | (a or b)返回True |
| not | 布尔”非” - 如果x为True,返回False。如果x为False,它返回True | not(a and b)返回False |
如果and 和 or 同时存在,则or将整体分成两部分看
成员运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回True,否则返回False | x在y序列中,如果x在y序列中返回True |
| not in | 如果在指定的序列中没有找到值返回True,否则返回False | x不在y序列中,如果x不在y序列中返回True |
三元运算
1 | result =值1 if 条件 else 值2 |
如果条件为真:result =值1
如果条件为假 :result =值2
1 | a = 3 |
如果a小于b则把a的值赋给c,相反则把b的值赋给c
身份运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| is | is是判断两个标识是不是引用自一个对象 | x is y,如果id(x)等于id(y),is返回结果1 |
| not is | is not是判断两个标识是不是引用自不同对象 | x is not y,如果id(x)不等于id(y),is返回结果1 |
位运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| & | 按位与运算符 | (a&b)输出结果12,二进制解释:0000 1100 |
| 丨 | 按位或运算符 | (a丨b)输出结果61,二进制解释:0011 1101 |
| ^ | 按位异或运算符 | (a^b)输出结果49,二进制解释:0011 0001 |
| ~ | 按位取反运算符 | (~a)输出结果-61,二进制解释:1100 0011,在一个有符号二进制数的补码形式 |
| << | 左移动运算符 | a<<2输出结果240,二进制解释:1111 0000 |
| >> | 右移动运算符 | a>>2输出结果15,二进制解释:0000 1111 |
运算符优先级
| 运算符 | 描述 |
|---|---|
| ** | 指数(最高优先级) |
| ~ + - | 按位翻转,一元加号和减号(最后两个方法名为+@和-@) |
| * / % // | 乘,除,取模和取整除 |
| + - | 加法减法 |
| >> << | 右移,左移运算 |
| & | 位’AND’ |
| ^ 丨 | 位运算符 |
| <= <> >= | 比较运算符 |
| <> == != | 等于运算符 |
| = %= /= //= -= += *= **= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not or and | 逻辑运算符 |
bytes类型
Python3中内置类型bytes和str用法及byte和string之间各种编码转换
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然).
1 | msg = "我爱北京天安门" |
执行结果:
1 | 我爱北京天安门 |
格式化
%s 字符串
例:
1 | string="hello" |
%d 整数
%f 浮点数
编码
在python3中不需要申明编码
从英文意思上看,encode和decode分别指编码和解码。在python中,Unicode类型是作为编码的基础类型,即:
1 | decode encode |
1 | u = '中文' # 指定字符串类型对象u |
其他
break 跳出本层循环
continue 跳出本次循环
1 | for i in range(10): |
只有正常结束for循环才会执行else的命令,所以done不会被输出
判断是否为数字
isdigit()
取嵌套列表的值
name = [12,23,34,[34,55]]
取55的值 :name[3][1]