运算符补充和流程控制

运算符

逻辑运算符

  • 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]

image

  • 如上图所示,其实底层的内存地址还是不同的,只不过python做的一种优化

流程控制理论

流程控制概念

  • 本质就是事物的执行流程,事物的执行流程总共就三种
    • 1.顺序结构:从上往下依次执行
    • 2.分支结构:根据条件的不同执行不同的代码
    • 3.循环结构:根据条件的判断是否一直做某件事或者做n

储备知识

  • python中使用代码的缩进来表示代码的从属关系,缩进的代码是否运行取决于没有缩进的父代码(结尾有冒号)

  • 缩进量其实没有要求 只要缩进了即可,但是为了美观,一般推荐使用四个空格

  • 并不是所有的代码都可以拥有子代码

  	if 关键字 else 关键字  elif 关键字 (elif else 不能单独使用)
  • 同属于一个父代码的多行子代码应该保证相同的缩进量

    如果代码缩进了,那就必须往上找一个缩进量比它小的代码作为父代码

    这个父代码如果可以拥有子代码 那么没有问题 不可以直接报错

流程控制之分支结构

在python中如果想要编写分支结构,那么需要使用关键字if

    1. if分支
  if 条件:
  		条件成立执行的代码(子代码)
    # 条件可以是布尔值  也可以是表达式
    # 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
    1. if...else分支
  if 条件:
  			条件成立之后执行的子代码
  else:
    		条件不成立执行的子代码
  # 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
    1. if...elif...else分支
  if 条件1:
    		条件1成立执行的代码
  elif 条件2:
    		条件1不成立  条件2成立执行的子代码
  elif 条件3:
    		条件1和2都不成立,条件3成立执行的子代码
  else:
    		上述所有条件都不成立执行的子代码
posted @ 2022-06-21 20:29  荀飞  阅读(28)  评论(0编辑  收藏  举报