03>>>基本运算符

03.基本运算符

  现在来了解一下python中的基本运算符

 

1.算术运算符

  加减乘除自不必说,次方和整除该怎么搞呢?

# print(2 ** 3)  # 8
# print(9 // 2) # 4

03>>>基本运算符

 

2.比较运算符

print(1 > 2)  # False
print('hello' > 'world')  # False

03>>>基本运算符

  字符串也可以进行比较,不过比较的时候是按照对应的数字比较。 A~Z:65~90 a~z:97~122

 

3.增量赋值

x = 10
x = x + 1  # 等价于 x += 1
x = x - 10  # 等价于 x -= 10
x = x * 20  # 等价于 x *= 20
x = x / 10  # 等价于 x /= 10

03>>>基本运算符

03>>>基本运算符

03>>>基本运算符

03>>>基本运算符

  增量赋值的设计初衷是为了简化代码。

 

4.链式赋值

  若x = 'jason',现在想让变量y和z也变成'jason',该怎么做?

x = 'jason'
y = x
z = x
print(x)
print(y)
print(z)

03>>>基本运算符

  这当然是正确答案,但是有另一种叫做链式赋值的方法可以大大简化代码:

x = y = z = 'jason'
print(x)
print(y)
print(z)

03>>>基本运算符

 

5.交叉赋值

  现在来做一道题:已知m = 10,n = 20,若想要更改变量成m =20,n=10,该怎么做?

方式1 中间变量

tmp = m
m = n
n = tmp
print(m,n)

03>>>基本运算符

  这当然是正确答案,但还有一种方法可以大大简化代码。

方式2 交叉赋值

m, n = n, m
print(m, n)

03>>>基本运算符

 

6.解压赋值

  已知列表stu_name = ['jason', 'kevin', 'tony'],现在要将列表中的每一个数据都取出来分别赋值给3个变量,应该怎么做?

name1 = stu_name[0]
name2 = stu_name[1]
name3 = stu_name[2]
print(name1)
print(name2)
print(name3)

03>>>基本运算符

  如果使用解压赋值,那么一行代码就能搞定了:

name1, name2, name3 = stu_name
print(name1, name2, name3)

03>>>基本运算符

  需要注意的是:默认情况下左右两边要保持相同的个数。

  也就是说列表里有几个元素,解压赋值时就要解压给几个变量,每个变量各接收一个元素。

  那如果有一个列表里有一万个元素,而我只想从其中选取其中几位明确序数的元素,岂不是依然要写一万个变量再分别解压赋值?

  不用这么麻烦,可以用*来打破位数限制。

l1 = [11,2,2,3,4,5,6,7,8,67,5,4,5,7,5,3,5,4]
a,b,*_,d = l1
print(a,b,d,_)

03>>>基本运算符

 

7.逻辑运算符

1.and与,链接的多个条件必须都满足结果才成立否则不成立。

eg:相亲对象身高165以上并且体重110以下并且长得漂亮并且家里有钱。

2.or或,链接的多个条件有一个满足即可。

eg:相亲对象身高165以上或者体重110以下或者长得漂亮或者家里有钱。

3.not非,对条件取反。

eg:说反话:“不写完作业不能玩游戏(实际意思是写完作业才能玩游戏)。”

  光看定义好像还有些似懂非懂,接下来简单举几个栗子稍加分析就能说清其判定逻辑。

print(1 > 2 and 4 > 1)
print(False and 1 < 4 and 5 > 1 and 9 > 6 and 8 > 3 and 7 > 9)

03>>>基本运算符

  and链接的多个条件,只要有条件一个是False时就不用往后看了,结果肯定是False。

print(1 > 2 or 4 > 1)
print(False or 1 < 4 or 5 > 1 or 9 > 6 or 8 > 3 or 7 > 9)

03>>>基本运算符

  or链接的多个条件,只要有一个是True就不用往后看了,结果肯定是True。

print(not True)

03>>>基本运算符

  如此一来是不是就能分清三者的用途了呢?

  注意:上述三个关键字如果混合使用是存在优先级的,但是我们不需要考虑优先级。在书写的时候应该通过括号强制规定优先级关系。例如:先乘除后加减,打破顺序可以使用括号。

15-(3*4)=?  # 3

 

8.成员运算符

in

成员运算符用于判断某个个体(局部)在不在某个群体(整体)内。

stu_list = ['joe', 'simon', 'frank', 'jerry']
guess_name = input('name>>>:')
print(guess_name in stu_list)
print(guess_name not in stu_list)

03>>>基本运算符

 

9.身份运算符

==  # 判断是否相等
is  # 判断是否是

  这次要来一个复杂一点的栗子。不过举例子之前首先要知道如何查看变量值所在的内存地址。

id()

  这行代码的运行结果是返回一串数字,用来表示内存地址。

  接下来该说明正题了:查看两个变量值及其内存地址是否相等。

name1 = 'jason kevin tony'
name2 = 'jason kevin tony'

  这需要用cmd来输入指令,pycharm有优化机制不太好展示。我们查看内存地址的代码查看一下:

id(name1)
id(name2)

03>>>基本运算符

  可以看到两者的内存地址不一样。

  接下来在看看另外的变量。

x = y = z = 'jason kevin tony'
id(x)
id(y)
id(z)

03>>>基本运算符

  这三个变量的内存地址一样,但是和name1,name2的内存地址不一样

  所以我们可以得出结论了:

print(name1 == name2)  # 判断name1的变量值和name2的变量值是否相等(两个变量的值是否相等)
print(name1 is name2)  # 判断name1是否是name2(两个变量绑定值的内存地址是否相等)

03>>>基本运算符

  两个变量的值相等 那么内存地址不一定相等。

  两个变量的内存地址相等 那么值肯定相等。

上一篇:DML与DQL


下一篇:VerilogHDL正弦信号发生器