python运算符以及表达式基础

文章发布时间:

最后更新时间:

文章总字数:
1.2k

预计阅读时间:
4 分钟

一.运算符

1.1 算术运算符

基本有的加(+),减(-),乘(*)。除(/)会将结果转换为小数,介绍一下其他的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 取模运算,就是求余数%
a = 10
b = 3
print(a % b)

# 幂运算,就是次方
a = 2
b = 3
print(a ** b)

# 整除//
a = 10
b = 3
print(a // b)
1
8
3

1.2 比较运算符

高级一点的就是 <=,>=,!=,简单一点的,==,<,>。

1.3 逻辑运算符(难)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# A and B,需两表达式都为True才为True(若A为False,则B不执行,目的是节约算力)
x = 5
y = 10
re = x > 3 and y < 20
print(re)

# 难点,A为True时,表达式结果就是B的结果
# 前A为False时,表达式结果就是A的结果
x = 5
y = 10
re = x and y
print(re)

a = 0
b = 5
re = a and b
print(re)

# A or B,需两表达式都为False才为False(若A为False,则B不执行,目的是节约算力)
x = 5
y = 10
re = x < 3 or y < 20
print(re)

# 难点,A为False时,表达式结果就是B的结果
# 前A为True时,表达式结果就是A的结果
a = 0
b = 5
re = a or b
print(re)

A = 5
B = 0
re1 = A or B
print(re1)

# not 非运算,即判断表达式是否为False
x = 5
re = not x
print(re)

re1 = not x > 3
print(re1)

re2 = not False
print(re2)
True
10
0
True
5
5
False
False
True

补充:a< x < y 可以看成是a< x and x < y

1
2
3
4
5
6
7
8
9
# python中这一条语句是同时执行的,表示100 < 10 and 10 < 30,所以是False
x = 10
re = 100 < x < 30
print(re)

'''
但其他的编程语言会先执行100 < x 然后判断(100 < x) < 30
100 < x 结果为0(False),而 0 < 30 结果为1(True),所以其他编程语言会返回True
'''
False

1.4 赋值运算符

  最简单的是 = ,其后所有算术运算符都可以写成+=,*=这种形式。= 是一种赋值运算符,先执行右边的表达式,再把结果赋值给左边的变量。

注:a++和a–这类运算在python中是不合法的

1.5 位运算符

主要应用于二进制,若是其他整数则转换为二进制,然后进行计算,默认返回整数值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 按位与&,如果a和b的相应位都是1,则结果位为1,否则为0
a = 0b1010
b = 0b0101
print(a & b)

# 按位或|,只要a和b中至少有一位是1,则结果位为1,否则为0
a = 0b1010
b = 0b0101
print(a | b)

# 按位异或^,如果a和b的相应位不同,则结果位为1,否则为0
a = 0b1010
b = 0b0100
print(a ^ b)


# 按位取反,其实就是二进制转换为十进制,然后取负号,再减一
a = 0b1010
print(~a)

# 左移<<,将a转换为二进制整体向左移动,右移同理(右边超出的部分丢弃)
a = 10
print(a << 2)
0
15
14
-11
40

一个30年的笔试题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#如何才能使得print(x.y)为20,10'

x = 10
y = 20

'''
python里可以用x,y = y, x结构赋值
其他语言不行,这里简单的可以使用Temp变量即
c = a
a = b
b = c
'''

#讲到这里也可以使用异或
x = x ^ y
y = x ^ y
x = x ^ y
print(x,y)


具体为什么能行呢,可以自己在草稿纸上演算一下两个数的异或,再用异或后的值再与其中一个异或一次,就会得到另一个了。

1.6 身份运算符

is,is not 其要求是不是同一个对象,而 == 判断是不是同一个数值。

1
2
3
4
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) #True, 比较的是值
print(a is b) #False,比较的是内存地址
True
False

1.7 成员运算符

就是in 和 not in。

1.8 三目运算符

1
2
3
4
5
6
7
8
# 就是if else用在表达式里
a = 1
b = 2

max = a if a>b else b
print(max)
#如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
#如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。
  • 更多的时候,我们借助()来明确优先级问题

二.表达式

就是一行代码(最小单位),是一个数值都行,多行表达式组成语句,多条语句组成代码块,然后就是程序。

举几个简单的表达式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 算术表达式
a = 5
b = 3
result = a + b # 加法
result = a / b # 除法

# 赋值表达式
a = 5
b = a + 3 # 计算并赋值

# 有一种属于python的海象运算符,同时取值与赋值
if (a := 5) > 0: # 赋值表达式
print(a)

# 推导式
a = [1, 2, 3, 4]
result = [x * 2 for x in a] # 创建一个新列表,元素是原列表每个元素的两倍