垃圾回收机制
有一些语言,内存空间的申请和清除都需要程序员自己写代码才可以完成,但是在python中却不需要,通过垃圾回收机制自动管理
1.引用计数
name= 'lizhi' 表示数据值lizhi的引用计数为1
name1 = 'lizhi' 表示数据值lizhi的引用计数加1 为2
del name1 表示数据值lizhi的引用计数减1 为1
当数据值身上的引用数为0的时候 就会被垃圾回收机制当做垃圾回收掉
当数据身上的引用数不用0的时候 永远不会被垃圾回收机制回收
2.标记清除
主要针对循环引用问题
l1 = [66, 88] #[66,88]引用计数为1
l2 = [125, 226] #[125.226]引用计数为1
l1.append(l2) #l1 = [66,88[125.226]]
l2,append(l1) #l2 = [125, 226[66,88]]
del l1 # 断开变量名l1与列表的绑定关系
del l2 # 断开变量名l2与列表的绑定关系
当内存占用达到临界值的时候,程序会自动停止,然后扫描程序中所有的数据
并给只产生循环引用的数据打上标记,之后一次性清楚
3.分代回收
垃圾回收机制的频繁运行也会损耗各项资源
新生代、青春代、老年代(越往下检测的频率越低)
流程控制理论
流程控制>>>:控制事务的执行流程
事务执行流程可以分为一下三种:
1.顺序结构
按照从上往下的顺序一次执行
2.分支结构
事务的执行会根据不同的条件做出不同的执行策略
3.循环结构
事务执行的时候会根据某个条件重复执行
注意:在代码的世界中碰到到往往是这三个结构混合出现的
流程控制必备的知识
1.python中使用代码的缩进来表示代码的从属关系
从属关系:可以理解为下属和领导,领导发话了下属才可以行动,那么在代码中,缩进的代码(子代码)是否执行取决于上面有没有缩进
2.并不是所有的代码都可以拥有缩进的子代码
关键字:if else while
3.如果有多行子代码同属于一个父代码,那么这些子代码需要保证相同的缩进量
4.python中针对缩进没有具体的要求,推荐使用4个空格(win中tab)
5.当某一行代码需要编写子代码的时候,那么一行代码的结尾肯定需要冒号
6.相同缩进的代码之间平起平坐,按照顺序依次执行
分支结构
1.单if分支条件:
if条件:
条件成立以后才会执行的代码快:
代码展示:
l1 = input('请输出你的名字>>>:')
if l1 =='lizhi':
print('他可爱')
2.if...else...分支结构
if 条件成立以后执行的子代码
else 条件不成立以后执行的子代码
代码展示:
l1 = input('请输出你的名字>>>:')
if l1 =='lizhi':
print('他可爱')
else:
print('他不可爱')
3.if...elif....else...分支结构
if:条件1:
条件1成立以后执行的子代码
elif:条件2
条件1不成立,条件2成立执行的子代码
elif:条件3
条件1和2不成立,条件3成立执行的子代码
else:
以上条件不成立执行的子代码
代码展示:
l1 = input('请输入你的成绩>>>:')
l1 = int(l1)
if l1 >= 90:
print('真不错')
elif l1 >= 80:
print('还行吧')
elif l1 >= 60:
print('要努力')
else:
print('退学吧')
4.if的嵌套使用
age = 28
height = 170
weight = 100
is_beautifl = True
is_success = False
username = 'lizhi'
if username == 'lizhi':
print('lizhi喜欢这个姑娘')
if age < 30 and height > 165 and weight < 120 and is_beautifl:
print('加一下你的微信吧')
if is_success:
print('你能喝冰的么')
else:
print('有机会以后再聊')
else:
print('我还有事先走了')
else:
print('暗号不对,不可以')
循环结构
想让一些代码反复执行:
while 条件:
条件成立之后立即执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立立即执行循环
3.循环体代码执行完毕后再次回到条件判断处,判断条件是否成立
4.如果成立,则继续执行循环体代码
5.按照上述规律一次执行,直到条件不成立才会执行循环体代码
代码展示:
l1 = 1
while l1 < 5:
print('hello word')
l1 += 1 # l1 = 1l+1
break # 强制结束循环体
while代码一旦执行到break会直接结束循环
代码展示:
l1 = 1
while l1 < 5:
print('hello word')
break
continue # 直接跳到条件判断处
while代码一旦直接continue会直接结束本次循环,开始下一次循环
代码展示:
l1 = 1
while l1 < 5:
print('hello word')
continue
while 条件:
循环体代码
else:
循环代码没有强制结束的情况下,执行完毕就会执行else子代码
作业:
1.
username = input('请输出你的用户名>>>:')
if username == ('jason'):
print('超级管理员')
elif username == ('tom'):
print('普通管理员')
elif username == ('jcka, rain'):
print('业务主管')
else:
print('其他用户')
2.username = input('请输入你的用户名')
if username == ('jason'):
print('拒绝访问')
elif username == ('kevin'):
print('拒绝访问')
elif username == ('tony'):
print('拒绝访问')
else:
print('允许登录')
2.username = input('请输入你的用户名')
black_user_list = ['jason', 'kevin', 'tony']
if username in black_user_list:
print('拒绝登录')
else:
print('允许登录')
3.
is_username = 'lizhi'
is_password = '456'
l1 = 1
while l1 < 4:
username = input('请输出你的用户名>>>:')
password = input('请输入你的用户密码>>>:')
if username == 'lizhi':
if password == ('456'):
print('登录成功')
break
else:
l1 += 1
4.
l1 = 10
while l1 < 20:
age = input('请输入你猜测的年龄')
age = int(age)
if age > 18:
print('猜大了')
elif age < 18:
print('猜小了')
elif age == 18:
print('猜对啦')
break
4.
l1 = 0
while l1 < 4:
age = input('请输入你猜测的年龄')
age = int(age)
if age > 18:
print('猜大了')
l1 += 1
elif age < 18:
print('猜小了')
l1 += 1
elif age == 18:
print('猜对啦')
break
if l1 == 3:
print('猜测机会已使用完毕')
l2 = input('请输入y继续,n退出游戏')
if l2 == 'y':
print('继续游戏')
l1 = 0
continue
if l2 =='n':
print('Game over')
break
标签:username,python,代码,回收,else,垃圾,l1,print,age
From: https://www.cnblogs.com/zhanghong1229/p/16736049.html