运算符补充和流程控制
运算符
逻辑运算符
and
: 连接的多个条件必须都成立,结果才成立(True
)or
: 连接的多个条件只要有一个成立,结果就成立(True
)Not
:将条件取反(原本是对的就变成错的)
成员运算符
in
:在什么什么之内,通常用来判断和字符串、列表、元组、字典、集合等数据结构的数据进行判断not
in
:不在什么什么之内
实战演练
# 判断成员是否在列表内
name_list = ['jason','mack','luxi']
print('jason' in name_list) # True
# 元组、集合的也如上一样,但是字典就有所不同了
user = {'jason':'123','jack':'333'}
print('jack' in user) #True 在字典的成员运算中,只与字典的key进行成员运算比较
身份运算符
is
: 判断两个数据值的内存地址是否相等(可通过id
来判断)==
: 判断两个数据值是否一致,不需要看地址是否相同
知识储备
id() # 该方法会返回一串数字,相当于内存地址
实战演练
l1 = [11, 22, 33, 44]
l2 = [11, 22, 33, 44]
print(id(l1), id(l2)) # 4507798272 4507800704
print(l1 is l2) #False
print(l1==l2) #True
-
所以,我们可以得出如下结论:
值相等,内存地址可能不等;内存地址相等,值肯定相等(单次程序)
python的内存优化
-
Python
提供了特定的方法来优化运行效率,小整数对象池就是其中的一种- 而这个小整数池的范围默认设定为[-5,256]
- 如上图所示,其实底层的内存地址还是不同的,只不过
python
做的一种优化
流程控制理论
流程控制概念
- 本质就是事物的执行流程,事物的执行流程总共就三种
- 1.顺序结构:从上往下依次执行
- 2.分支结构:根据条件的不同执行不同的代码
- 3.循环结构:根据条件的判断是否一直做某件事或者做
n
次
储备知识
-
python
中使用代码的缩进来表示代码的从属关系,缩进的代码是否运行取决于没有缩进的父代码(结尾有冒号) -
缩进量其实没有要求 只要缩进了即可,但是为了美观,一般推荐使用四个空格
-
并不是所有的代码都可以拥有子代码
if 关键字 else 关键字 elif 关键字 (elif else 不能单独使用)
-
同属于一个父代码的多行子代码应该保证相同的缩进量
如果代码缩进了,那就必须往上找一个缩进量比它小的代码作为父代码
这个父代码如果可以拥有子代码 那么没有问题 不可以直接报错
流程控制之分支结构
在python中如果想要编写分支结构,那么需要使用关键字if
-
- 单
if
分支
- 单
if 条件:
条件成立执行的代码(子代码)
# 条件可以是布尔值 也可以是表达式
# 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
-
if
...else
分支
if 条件:
条件成立之后执行的子代码
else:
条件不成立执行的子代码
# 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
-
if
...elif...else
分支
if 条件1:
条件1成立执行的代码
elif 条件2:
条件1不成立 条件2成立执行的子代码
elif 条件3:
条件1和2都不成立,条件3成立执行的子代码
else:
上述所有条件都不成立执行的子代码