垃圾回收机制、流程控制、分支结构、循环结构

垃圾回收机制

"""

有一些语言 内存空间的申请和释放都需要程序员自己写代码才可以完成

但是python却不需要 通过垃圾回收机制自动管理

"""

1.引用计数

name = 'jason'          数据值jason身上的引用计数为1

name1 = name        数据值jason身上的引用计数加一 为2

del name1               数据值jason身上的引用计数减一 为1

当数据值身上的引用计数为0的时候 就会被垃圾回收机制当做垃圾回收掉

当数据值身上的引用计数不为0的时候 永远不会被垃圾回收机制回收

 

2.标记清除 主要针对循环引用问题

l1 = [11, 22] # 引用计数为1

l2 = [33, 44] # 引用计数为1

 

l1.append(l2) # l1 = [11, 22, l2列表] 引用计数为2

l2.append(l1) # l2 = [33, 44, l1列表] 引用计数为2

 

del l1 # 断开变量名l1与列表的绑定关系 引用计数为1

del l2 # 断开变量名l2与列表的绑定关系 引用计数为1

 

当内存占用达到临界值的时候 程序会自动停止 然后扫描程序中所有的数据

并给只产生循环引用的数据打上标记 之后一次性清除

 

3.分代回收 垃圾回收机制的频繁运行也会损耗各项资源

新生代、青春代、老年代(越往下检测频率越低)

 

流程控制理论

流程控制>>>:控制事物的执行流程

事物执行流程总共可以分为三种

 

1.顺序结构

从上往下依次执行 我们之前所编写的代码都属于该结构

 

2.分支结构

事物的执行会根据条件的不同做出不同的执行策略

 

3.循环结构

事物的执行会根据某个条件出现重复

 

ps:在代码的世界里 很多时候可能会出现三者混合

提示:作为小白 在学习流程控制的时候 建议做到代码和图形的结合

 

 

流程控制必备知识

1.python中使用代码的缩进来表示代码的从属关系

从属关系:缩进的代码(子代码)是否执行取决于上面没有缩进的

 

2.并不是所有的代码都可以拥有缩进的代码(子代码) if关键字

 

3.如果有多行子代码属于同一个父代码 那么这些子代码需要保证相同的缩进量

 

4.python中针对缩进量没有具体的要求 但是推荐使用四个空格(windows中tab键)

 

5.当某一行代码需要编写子代码的时候 那么这一行代码的结尾肯定需要冒号

 

6.相同缩进量的代码彼此之间平起平坐 按照顺序结构依次执行

 

 

分支结构

1.单if分支结构

if 条件:

条件成立之后才会执行的代码快

ps:单if可以借助于流程图理解

username = input('username>>>:')

if username == 'jason': print('老师好')

 

2.if...else...分支结构

if 条件:

条件成立之后执行的子代码

else:

条件不成立执行的子代码

username = input('username>>>:')

if username == 'jason':

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 >= 90:

print('优秀')

elif score >= 80:

print('良好')

elif score >= 70:

print('一般')

elif score >= 60:

print('及格')

else:

print('挂科 交钱重修')

 

 

4.if的嵌套使用(有点难)

age = 28

height = 170

weight = 110

is_beautiful = True

is_success = False username = 'tony'

if username == 'tony':

print('tony发现目标')

if age < 30 and height > 160 and weight < 150 and is_beautiful:

print('大妹纸 手机掏出来 让我加微信')

if is_success: print('吃饭 看电影 天黑了...')

else:

print('去你妹的 流氓!!!')

else:

print('不好意思 认错人了')

else:

print('不是tony做不出来这件事')

 

循环结构

就是想让一些代码反复的执行

while 条件:

条件成立之后执行的子代码(循环体代码)

1.先判断条件是否成立

2.如果成立则执行循环体代码

3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立

4.如果成立 则继续执行循环体代码

5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行

count = 1

while count < 5:

print('hello world')

count += 1 # count = count + 1 

print('想不想干饭?')

break      # 强行结束循环体

while循环体代码一旦执行到break会直接结束循环

continue                  # 直接跳到条件判断处

while循环体代码一旦执行到continue会结束本次循环       开始下一次循环

 

while 条件:

循环体代码

else:

循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码

posted @   DYuH  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示