今日内容总结
垃圾回收机制
"""
有一些语言 内存空间的申请和释放都需要程序员自己写代码才能完成
但是python却不需要 通过垃圾回收机制自动管理
"""
1.引用计数
name = '李华'数据值李华身上的引用计数为1
name1 = name 数据值李华身上的引用计数加一 为2
del name1 数据值李华身上的引用计数减一 为1
2.标记清除
主要针对循环问题
l1 = [11,22] #引用计数为1
l2 = [33.44] #引用计数为1
l1.append(12) # 11 = [11,22 l2列表] 引用计数为2
l2.append(l1) # l2 = [33,44,l1列表] 引用计数为2
del l1 #断开变量名l1与列表的绑定关系 引用计数为2
del l2 #断开变量名l2与裂变的绑定关系 引用计数为2
当内存占用达到临界值的时候 程序会自动停止 然后扫描程序中的所有数据
并给只产生循环的数据打上标记之后一次性清除。
3.分代回收
垃圾回收机制的频繁运行也会消耗各项资源
新生代(引用计数为1)、青春代(引用计数逐渐增加)、老年代(引用计数最高) (使用的次数越多 检测的频率也就越低)
标记清除图
分代回收图
流程控制理论
流程控制>>>:控制事物的执行流程
事物执行流程总共可以分为三种
1.顺序结构
从上往下依次执行 我们之前所编写的代码都属于该结构
2.分支结构
事物的执行会根据条件的不同做出不同的执行策略
3.循环结构
事物的执行会根据某个条件出现重复
ps:在代码的世界里 很多时候可能会出现三者混合
提示:作为小白 在学习流程控制的时候 建议做到代码和图形的结合
1,顺序结构流程图
2,分支结构流程图
3.循环结构流程图
流程控制必备知识
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都不成立 条件3成立执行的子代码
else:
上述条件都不成立执行的子代码
ps:中间的elif可以写多个、上述子代码永远只会执行一个
score = input('请输入学生成绩>>>:')
score = int(scre) #将字符串的整数转换为整形的整数
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': #判断输入的那个人是不是tony
print('tony发现目标')
if age < 30 and height > 160 and weight< 150 and is_beautiful:
print('大妹子 手机掏出来 让我加微信') #判断是否符合上述要求
if is_success: #判断女方是否同意
print('吃饭 看电影 天黑了..')
else:
print('去你妹的 臭流氓!!!') # 对应跟他平行的if语句
else:
print('不好意思 认错人了') #对应上面跟其平的if语句表示另一种情况
else:
print('不是tony 做不出来这种事')#对应最上面的if语句,如果这条语句是这一种情况则后面的if语句全部不执行。
循环结构体
就是想让一些代码反复执行
while 条件:
条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规则依次执行 直到条件不成立才会结束循环体代码执行
count = 1
while count < 5: #判断定义的数量值是否小于5
print('hello world') #如果符合条件则输出hello world
count += 1 # count = count + 1
print('想不想干饭') #循环结束后打印
break # 强行结束循环体
while循环体代码一旦执行到break会直接结束循环
continue # 直接跳到条件判断处
while循环体代码一旦执行到continue会结束本次循环 开始下一次循环
while 条件:
循环体代码
else:
循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码
作业
根据用户输入内容打印其权限
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
2.编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
3.编写用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序