1、昨日内容回顾
-
布尔值(bool) 常见的布尔值为False的数据值、布尔值的变量的命名方式。
-
元组(tuple) 不可变数据类型。
-
集合(set) 用来做成员运算、空集合。
-
计算机与用户交互 input()、print() 、python2和python3中输入输出的区别。
-
格式化输出 常见占位符有'%s'、'%d',两者的特点。
-
基本运算符 常用的数字运算符及比较运算符。
-
多种赋值方式 链式赋值、交叉赋值、解压赋值。
-
逻辑运算符 and、or、not
-
成员运算符 in、not in。字符串、列表、字典进行成员运算的特点。
-
身份运算符 id()方法、is 运算可查看两个变量或数据内存地址是否相同。
2、今日内容概要
- 垃圾回收机制
- 流程控制理论
- 顺序结构
- 分支结构
- 循环结构
3、今日内容详细
垃圾回收机制
引用计数
同一个数据被变量名绑定的次数即为引用计数,当一个数据引用计数为0时,即被垃圾回收机制认定为垃圾数据,进行空间回收。
标记清除
标记清除机制主要解决循环引用产生的衍生数据问题,该衍生数据引用计数不为0,却无法被引用,为实质上的垃圾数据。当内存压力过大时,解释器会统一对所有数据进行扫描,标记出可以被直接或间接引用的数据,回收不能被引用到的数据所在的内存空间。
分代回收
程序运行中,垃圾回收机制持续运行会造成内存压力过大,影响程序主要功能运行。因此,垃圾回收机制会根据数据被引用的持续时间,将数据分为三代。
对于刚生成的一代数据,垃圾回收机制对其扫描的频率较高,在经历一定次数的扫描之后,若数据依然没有被回收,则将该部分数据归为第二代数据,降低对其的扫描频率;第二代数据在经历了一定次数的扫描之后,若依然没有被回收,则该数据被归为第三代数据,进一步降低对其的扫描频率。
流程控制理论
- 顺序结构
在流程进行过程中,不涉及条件判断,从前往后顺序执行的结构为顺序结构。
- 分支结构
在流程进行过程中,根据不同的条件,执行不同的后续程序,这种结构称为分支结构。
- 循环结构
在流程进行过程中,在满足某一条件时,对一个程序进行多次重复,这种结构成为循环结构。
分支结构
单条件分支(if : ... else: ...语句)
最简单的分支结构,在满足某一条件时,执行对应子代码,不满足时,执行另一段子代码。不满足时,也可以不执行任何操作,即不写else及其对应子代码。
time_now = input('What is the time>>>:')
if time_now == 'midnight':
print('It is time to sleep.')
else: # 可不写
print('We can still study') # 可不写
多条件分支(if: ... elif: ... else: ...语句)
对一个数据的判断可能分为几个层级,在满足层级1时,执行层级1对应子代码;不满足层级1,但满足层级2时,执行层级2对应子代码......前边的层级都不满足时,执行最后一个层级对应子代码。
time_now = input('What is the time>>>:')
if time_now == 'morning':
print('It is time to read.')
elif time_now == 'midnight':
print('It is time to sleep.')
else:
print('Just do whatever you like.')
分支的嵌套(if: ... if: ... else: ... else: ...语句)
对一个数据进行判断满足条件之后,需要对另一个或多个数据再次进行判断,使所有数据均满足条件从而到达唯一结果时,需要使用分支的嵌套,在满足所有条件时执行对应子代码,每层判断在不满足相应条件时,可执行另一段子代码。
time_now = input('What is the time>>>:')
weather = input('What is the weather now>>>:')
if time_now == 'morning':
if weather == 'sunny':
print('It is time to study.')
else:
print('It is better to sleep.')
else:
print('It is too late.')
循环结构
while循环
当满足某一条件时,进行一段程序(循环体)的循环,可以使用while循环语句。
break语句可以强制结束当前循环,continue语句可以跳过本次循环,直接进行下一次循环。
count = 3
while count > 0:
print('counting down: %s' % count)
count -= 1
# 执行结果
counting down: 3
counting down: 2
counting down: 1
# --------------------------------------------
count = 3
while count > 0:
if count == 2:
break
else:
print('counting down: %s' % count)
count -= 1
# 执行结果
counting down: 3
# --------------------------------------------
count = 3
while count > 0:
if count == 2:
count -= 1
continue
else:
print('counting down: %s' % count)
count -= 1
# 执行结果
counting down: 3
counting down: 1
while: ... else: ...语句
满足条件时,进行循环体代码,若循环体未强制结束,则循环正常结束时,执行else后的子代码。
标签:count,...,流程,回收,else,垃圾,time,print,数据 From: https://www.cnblogs.com/akazukis/p/16735512.html