运算符和表达式
表达式
是值,变量和操作符(或叫运算符)的组合。单独的一个值是一个表达式,单独的变量也是一个表达式。
运算符
算数运算符(必会)
运算符 | 描述 |
---|
+ | 两个对象相加 |
- | 减-得到负数或是一个数减去另一个数 |
* | 乘-两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除-x除以y |
% | 取模-返回除法的余数 |
** | 幂-返回x的y次幂 |
// | 取整除-向下取接近除数的整数 |
同时获得商和余数
divmod(13, 5)
例:
a = 10
b = 20
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)
print(a ** b)
print(a // b)
比较运算符(必会)
运算符 | 描述 |
---|
== | 等于-比较对象是否相等 |
!= | 不等于-比较两个对象是否不相等 |
> | 大于-返回x是否大于y |
< | 小于-返回x是否小于y |
>= | 大于等于-返回x是否大于等于y |
<= | 小于等于-返回x是否小于等于y |
例:
a = 10
b = 20
print(a == b)
print(a != b)
print(a > b)
print(a < b)
print(a >= b)
print(a <= b)
赋值运算符(会用)
运算符 | 描述 |
---|
= | 简单的赋值运算符 |
=+ | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 赋值运算符 |
//= | 取整除赋值运算符 |
位运算符(计算机专业了解)
运算符 | 描述 |
---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 取反 |
<< | 左移 |
>> | 右移 |
lis = [0, 1]
o = ['&', '|', '^']
print(f'│{"a":^3}│{"b":^3}│'
f'{"a" + o[0] + "b":^3}│'
f'{"a" + o[1] + "b":^3}│'
f'{"a" + o[2] + "b":^3}│')
for a in lis:
for b in lis:
print(f'│{a:^3}│{b:^3}│'
f'{eval("a" + o[0] + "b"):^3}│'
f'{eval("a" + o[1] + "b"):^3}│'
f'{eval("a" + o[2] + "b"):^3}│')
'''
│ a │ b │a&b│a|b│a^b│
│ 0 │ 0 │ 0 │ 0 │ 0 │
│ 0 │ 1 │ 0 │ 1 │ 1 │
│ 1 │ 0 │ 0 │ 1 │ 1 │
│ 1 │ 1 │ 1 │ 1 │ 0 │
'''
a = 11
print(a << 1)
print(a >> 1)
print(-a << 1)
print(-a >> 1)
逻辑运算符(必会)
运算符 | 描述 |
---|
and | 布尔 “与” |
or | 布尔 “或” |
not | 布尔 “非” |
lis = [True, False]
o = [' and ', ' or ']
print(f'│{"a":^7}│{"b":^7}│'
f'{"a" + o[0] + "b":^7}│'
f'{"a" + o[1] + "b":^7}│')
for a in lis:
for b in lis:
print(f'│{a:^7}│{b:^7}│'
f'{eval("a" + o[0] + "b"):^7}│'
f'{eval("a" + o[1] + "b"):^7}│')
'''
│ a │ b │a and b│a or b │
│ 1 │ 1 │ 1 │ 1 │
│ 1 │ 0 │ 0 │ 1 │
│ 0 │ 1 │ 0 │ 1 │
│ 0 │ 0 │ 0 │ 0 │
'''
print(not True)
print(not False)
短路原则
print(0 and 0)
print(0 and 10)
print(10 and 0)
print(10 and 10)
print(0 or 0)
print(0 or 10)
print(10 or 0)
print(10 or 10)
优先级
not > and > or
print(False and True or False)
print(not True and True or False)
成员运算符(必会,学完全部数据类型后)
运算符 | 描述 |
---|
in | 如果在指定的序列中找到值返回True ,否则返回False |
not in | 如果在指定的序列中没有找到值返回True,否则返回False |
print('1' in '123')
print(1 in [1, 2, 3])
print(1 in (1, 2, 3))
print('a' in {'a': None})
print('1' not in '123')
print(1 not in [1, 2, 3])
print(1 not in (1, 2, 3))
print('a' not in {'a': None})
身份运算符(必会,学完面向对象后)
运算符 | 描述 |
---|
is | is是判断两个标识符是不是引用自一个对象 |
is not | is not是判断两个标识符是不是引用自不同对象 |
o1 = object()
o2 = o1
o3 = object()
print(o1 is o2)
print(o1 is o3)
获取内存地址方法
id(object)
运算符优先级
凭直觉,加括号