5、Python——运算符与表达式、赋值运算、比较运算、短路运算、成员关系运算符、运算符优先级

147 阅读3分钟

目录

1、表达式

2、运算符

2.1、运算符分类

2.1.1、算术运算符

2.1.2、python2 vs python3的除法比较

2.1.3、赋值运算符

2.1.4、比较运算符

2.1.5、(1)逻辑运算符

2.1.5、(2)短路运算

2.1.5、(3)用and or not 求两数(都不为零)之间最大

2.1.6、(1)成员关系运算符

2.1.6、(2)对象实例测试运算符(使用大于256的数,测试软件用python3)

2.1.7、位运算

3、运算符优先级

3.1、运算符优先级

3.2、计算顺序


1、表达式

表达式由一个或多个操作输通过操作符组合而成

2、运算符

2.1、运算符分类

2.1.1、算术运算符

2.1.2、python2 vs python3的除法比较

python2中的整数相除(/)属于地板除,即向下取整,要想真除得变成浮点型,python3是真除
(这是在Python2中运行的结果)

(这是Python3中运行的结果),//是地板除

2.1.3、赋值运算符

(x -=1 ——》x=x-1)

2.1.4、比较运算符

2.1.5、(1)逻辑运算符

2.1.5、(2)短路运算

>>> 10 and 20  # 若都为真输出后边的值
20
>>> 0 and 10   #若为假(0),则输出0
0


# or and not 优先级一样
>>> 4 or print(5) and not print(6) 
4

# and or not  
# 对于包含了and or not的表达式,从左往右计算,计算到哪个终止就会输出哪个
# 短路运算规则
#若 or左侧表达式为True,则短路后面所有的表达式(不管是and还是or)
#若and左侧表达式为False,则短路后面所有的and表达式


# 3 5 4 7是运行了,print(6)是被短路了,8是整个表达式的结果  print(3)的结果是none,所以为false
>>> print(3) or not print(5) and print(4) and not print(6) or print(7) or 8
3
5
4
7
8
>>> result = print(3) or not print(5) and print(4) and not print(6) or print(7) or 8
3
5
4
7
>>> print(result)
8

2.1.5、(3)用and or not 求两数(都不为零)之间最大

可用a > b and a or b

2.1.6、(1)成员关系运算符


这个只是对字符串有用

>>> 's' in 'abc'
False
>>> 's' not in 'abc'
True
>>> '1' not in '123'
False
>>> 

2.1.6、(2)对象实例测试运算符(使用大于256的数,测试软件用python3)

2.1.7、位运算

>>> a = 5
>>> b = 3 
>>> a & b
1
>>> a | b
7
>>> a ^ b
6
>>> a << 2
20
>>> a >> 2
1
>>> a = 6
>>> a = 5
>>> b = 1
>>> a % b
0
>>> bin(7)
'0b111'
>>> bin(20)
'0b10100'
>>> ~b
-2
>>> bin(5)
'0b101'
>>> bin(6)
'0b110'

# 请写出条件"20<x<30或x<-100"的Python表达式
>>> 20 < 30 or x < -100
True

判断字符串str1中是否有”abc”对应的表达式是
>>> str1 = "abcdgsdgad"
>>> "abc" in str1
True

127右移2位的值为
>>> 127 >>2
31
>>> bin(127)
'0b1111111'
>>> bin(31)
'0b11111'

计算: 3 or print("5") and not print('abc')
>>> 3 or ptint("5") and not print('abc')
3

# 设有一个int型的y, 请写出描述"y为奇数的表达式"
y%2   #是偶数,输出0,表示假  是奇数,输出1,表示真

3、运算符优先级

3.1、运算符优先级

3.2、计算顺序