今日内容
垃圾回收机制
'''
有一些语言 内存空间申请和释放都需要程序员自己写代码才可以完成 但在python里垃圾回收机制自动管理
'''
1.引用计数
name = 'sun' 数据值在sun身上引用的计数为1
name1 = name 数据值sun身上的引用计数值为2 (+1)
del name1 数据值sun身上的引用计数值为1 (-1)
当数据身上的计数值为0时 就会被垃圾回收机制当成垃圾处理掉
2.标记清除
主要针对循环引用问题
l1 = [11, 22, ] # 引用计数为1
l2 = [44, 55, ] # 引用计数为1
l1.append(l2) # l1 = [11, 22, , [l2]] 引用计数为2
l2.append(l1) #l2 = [44, 55, tt[l1]] 引用计数为2
del l1 #断开变量名l1与列表的绑定关系 引用计数为1
del l2 #断开变量名l2与列表的绑定关系 引用计数为1
当内存中达到临界值的时候 程序会自动停止 然后扫描程序中的所有数据
并给只产生循环引用的是数据加上标记 以后一次性清除
![](/i/l/?n=22&i=blog/2987271/202209/2987271-20220927202032985-970322119.png)
3.分代回收
垃圾回收机制的频繁运行也会损耗各项资源
新生代、青春代、老年代
越往下检测的频率越低
流程控制理论
事物执行流程总共可以分为三种
1.顺序结构
从上往下依次进行 我们之前所编写的代码都是该流程
2.分支结构
事物的执行会根据条件的不同做出不同的执行策略
3.循环结构
事物的执行会根据耨个田间出现的重复
ps:在代码世界里 很多时候会出现三者混合
![](/i/l/?n=22&i=blog/2987271/202209/2987271-20220927202322232-1345786828.png)
流程控制必备知识
1.python中使用缩进来表示代码的从属关系
从属关系:缩进的代码(子代码)是否执行取决去上面没有所进的的代码
2.并不是所有的代码都能拥有子代码
if 关键字
3.如果有多行子代码属于同一个父代码那么这些子代码的所尽量要一样
4.推荐使用4个空格
5.当某一行代码需要编写子代码的时候那么这一行代码的结尾肯定需要冒号
6.相同所尽量的代码之间平起平坐 按照顺序结构依次执行
分支结构
1.单if分支结构
if条件:
条件成立之后才会执行代码
usename = input('请输入您的姓名:')
if usename == '日日':
print('hello')
2.if...else...分支结构
if条件:
条件成立之后执行的子代码
else条件:
条件不成立执行的子代码
username = input('请输入你的姓名:')
if username == '日日':
print('你好日日')
else:
print('你不好')
3.if...elif...else分支结构
if 条件1:
条件1成立之后执行的子代码
elif 条件2:
条件1不成立 条件2成立执行子代码
elif 条件3:
条件1和条件2不成立 条件3成立 执行子代码
else:
上述条件都不成立 执行子代码
ps:中间的elif可以有多个 上述子代码只能有一个
score = input('请输入您的年龄:')
score =int(score)
if score >= 18:
print('成年啦╰(*°▽°*)╯')
elif score >= 14:
print('青少年φ(* ̄0 ̄)')
elif score >=10:
print('少年(~ ̄▽ ̄)~')
else:
print('还是小孩子哦( ´・・)ノ(._.`)')
4.if的嵌套使用(有点难)
username = input('请输入用户名:')
dress = 20
shot = 170
is_success = False
is_shopping = True
username = 'sun'
if username == 'sun':
print('sun发现漂亮衣服')
if dress < 30 and shot > 160 and is_shopping:
print('sun想买这套衣服')
if is_success :
print('i am so happy!')
else:
print('oh!shit')
else:
循环结构
就是想让一些代码反复执行
while条件:
条件成立以后执行子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环代码
5.暗战上述规律依次执行 直到条件不成立才会结束循环代码的执行
```
count = 1
while count < 5:
print('日日好可爱')
count += 1
```
break #强行结束
while循环代码一旦执行到break就会强行结束循环
continue #直接跳过条件判断处
while代码一旦执行到continue会结束本次循环 开始下一次循环
![](/i/l/?n=22&i=blog/2987271/202209/2987271-20220927202436379-514117939.webp)
while 条件:
循环体代码
else:
循环体代码没有被强制结束的情况下执行完毕就会执行else子代码
标签:sun,代码,回收,else,垃圾,条件,print,执行,流程
From: https://www.cnblogs.com/lzy199911/p/16735823.html