隐式布尔值,可变与不可变类型,赋值运算符,身份运算和if判断

隐式布尔值,可变与不可变类型,赋值运算符,身份运算和if判断
1.1 隐式的布尔值
所有的值都有隐式的布尔值
隐式的布尔值为False的有0 , None, 空
逻辑运算时算到哪个位置结束就把那个位置的值当做结果返回

2.1 可变类型:list, dict
在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改变原来内存空间中的堆中的值,即原值可变。
2.2 不可变类型:int, float, str
在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间的值,而是申请了新的内存空间,产生了新的值,即原值不可变。
2.3 注意
字典的value可以是任意类型,但是字典的key必须是不可变类型。
可哈希类型就是不可改变类型,,不可哈希类型就是可变类型.

3.1 增量赋值
x + 1 = x ---> x += 1
x - 1 = x ---> x -= 1
x * 2 = x ---> x *= 2
x / 3 = x ---> x /= 3
x // 3 = x ---> x //= 3
x % 3 = x ---> x %= 3
x ** 5 = x ---> x **= 5
3.2 链式赋值
x = y = z =123
3.3 交叉赋值
x, y = y, x
3.4 解压赋值
3.4.1 解压取值
salaries = [1, 2, 3, 4]
mon1, mon2, mon3, mon4 = salaries
3.4.2 取前几位数
mon1, mon2, *_ = salaries
3.4.3 取后几位数
*_, mon3, mon4 = salaries
3.4.4 取前后两边的数值
mon1, *_, mon5 = salaries
注意:对于dist字典类型,解压赋值取出来的是字典的key
列表类型解压赋值时可以取出直接的值
ll = ["liyong", 49, 'richer'],
a, b = ll[0][0], ll[0][1]
print(a, b) #liyong 49
字典类型解压赋值时,只能取出对应的key
lll = {'name': 'liyong', 'age': 49, 'hoppies': 'work'}
a, b , *_= lll
print(a, b) # name age

4.1 身份运算符 is, ==
is 判断的是内存中的id是否相等
== 判断的是值是否相等
is判断的结果为True, 即二者的id是否一样,即二者的内存地址一样,即二者是否就是一个东西,即值一定相等。
如果==判断的结果为True, 即二者的值相等,那么二者的内存地址可能不一样。
如果要判断一个变量是否等于None, True, False,推荐用is去判断。
is为True,则值一定相等。
==为True,则值不一定相等。

5.1 什么是if判断
判断条件是否成立 ,成立做什么事,不成立做什么事。
5.2 为何要有if判断
为了控制计算机能够像人一样去完成判断的过程
5.3 如何用if判断
if判断完整的语法
if 条件1:
子代码块1
elif 条件2:
子代码块2
elif 条件3:
子代码块3
。。。。
else:
子代码块N
必须要有if , 只有一个if是可以的。
if判断可以嵌套if
posted @ 2022-09-09 17:35  六八少年  阅读(82)  评论(0编辑  收藏  举报