今日内容概要
-
垃圾回收机制
-
流程控制理论
-
流程控制必备知识
-
分支结构
-
循环结构
-
作业
今日内容详细
垃圾回收机制
有一些语言 内存空间的申请和释放都需要程序员自己写代码才可以完成
但是python却不需要 通过垃圾回收机制自动管理,Python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略。
引用计数
当数据值身上的引用计数为0的时候 就会被垃圾回收机制当做垃圾回收掉
当数据值身上的引用计数不为0的时候 永远不会被垃圾回收机制回收
name = '张三' #数据值张三身上的引用计数为1
name1 = name #数据值张三身上的引用计数为2
del name1 #数据值张三身上的引用计数为1
标记清除
主要针对循环引用问题,当内存占用达到临界值的时候 程序会自动停止 然后扫描程序中所有的数据并给只产生循环引用的数据打上标记 之后一次性清除
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
分代回收
垃圾回收机制的频繁运行也会损耗各项资源
新生代、青春代、老年代(越往下检测频率越低)
流程控制理论
流程控制就是控制事物的执行流程
事物执行流程可以分为三种
-
顺序结构
从上往下依次执行 没学习之前所编写的都属于该结构
-
分支结构
事物的执行会根据条件的不同做出不同的执行策略
-
循环结构
事物的执行会根据某个条件重复
在实际编写代码时 很多时候可能会三者混合使用
流程控制必备知识
- python中使用代码的缩进来表示代码的从属关系
- 并不是所有的代码都可以拥有缩进的代码
- 如果有多行子代码属于同一个父代码 那么这些子代码需要保证相同的缩进量
- python中针对缩进量没有具体的要求 但是推荐使用四个空格(windows中tab键)
- 当某一行代码需要编写子代码的时候 那么这一行代码的结尾肯定需要冒号
- 相同缩进量的代码彼此之间平起平坐 按照顺序结构依次执行
分支结构
单if分支结构
# 格式
if 条件:
条件成立之后才会执行的代码块
# 实例
name = input('请输入您的姓名:')
if name == '张三':
print('你好')
if...else...分支结构
# 格式
if 条件:
条件成立之后执行的子代码
else:
条件不成立执行的子代码
# 实例
name = input('请输入您的姓名:')
if name == '张三':
print('张三你好')
else:
print('你不是张三')
if...elif...else分支结构
# 格式
if 条件1:
条件1成立之后执行的子代码
elif 条件2:
条件1不成立 条件2成立执行的子代码
elif 条件3:
条件1和2都不成立 条件3成立执行的子代码
else:
上述条件都不成立 执行的子代码
# 实例
score = input('请输入您的成绩:')
score = int(score) # input默认是字符串,通过int转换成整型
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
else:
print('挂科')
if的嵌套使用
# 格式
if 条件1:
条件1成立执行的代码
if条件2:
条件2成立执行的代码
else:
条件2不成立执行的代码
else:
条件1不成立执行的代码
# 实例
age = 18
money = 10
if age >=18:
print('成年了,可以去网吧')
if money >= 10:
print('有钱去网吧')
else:
print('钱不够,去不了网吧')
else:
print('未成年不能去网吧')
循环结构
就是让一些代码反复的执行
# 格式
while 条件:
条件成立之后执行的子代码(循环体代码)
# 执行流程
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行
# 强制结束循环体
break 循环体代码一旦执行到break会直接结束循环
while 条件:
条件成立之后执行的子代码(循环体代码)
break # 直接结束循环 )
# 结束本次循环
continue 循环体代码一旦执行到continue会结束本次循环 开始下一次循环
while 条件:
条件成立之后执行的子代码(循环体代码)
continue
条件成立之后执行的子代码(循环体代码)
# 不常用的循环方法
while 条件:
循环体代码
else:
循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码
作业
'''作业1'''
# name = input('请输入您的姓名:')
# if name == 'jason':
# print('您的权限为超级管理员')
# elif name == 'tom':
# print('您的权限为普通管理员')
# elif name == 'jack' or 'rain':
# print('您的权限为业务主管')
# else:
# print('您的权限为普通用户')
'''作业2'''
# name = 'oscar'
# userpwd = 123
# black_user_list = ['jason', 'kevin', 'tony']
# username = input('请输入您的用户名:')
# if username in black_user_list:
# print('您是黑名单用户,禁止登陆')
# elif username != name:
# print('用户名错误或没有该用户,请重新尝试')
# else:
# password = int(input('请输入密码:'))
# if password == userpwd:
# print('用户名密码正确,登陆成功')
# else:
# print('密码错误,请重新登陆')
'''作业3'''
# name = 'oscar'
# userpwd = 123
# black_user_list = ['jason', 'kevin', 'tony']
# count = 0
#
#
# while count < 3:
# username = input('请输入您的用户名:')
# if username in black_user_list:
# print('您是黑名单用户,禁止登陆')
# count += 1
# print(f'总共三次机会, 您以尝试{count}次')
# elif username != name:
# print('用户名错误或没有该用户,请重新尝试')
# count += 1
# print(f'总共三次机会, 您以尝试{count}次')
# else:
# password = int(input('请输入密码:'))
# if password == userpwd:
# print('用户名密码正确,登陆成功')
# break
# else:
# print('密码错误,请重新登陆')
# count += 1
# print(f'总共三次机会, 您以尝试{count}次')
'''作业4'''
# age = 18
#
# while True:
# gass_age = int(input('请输入您猜的年龄'))
# if gass_age == age:
# print('恭喜你猜对了')
# break
# elif gass_age > age:
# print('猜大了')
# else:
# print('猜小了')
'''作业5'''
# age = 18
# while True:
# count = 0
# while count < 3:
# gass_age = int(input('请输入您猜的年龄'))
# if gass_age == age:
# print('恭喜你猜对了')
# break
# elif gass_age > age:
# print('猜大了')
# count += 1
# else:
# print('猜小了')
# count += 1
# again = input('是否继续尝试(y/n):')
# if again == 'y':
# continue
# elif again == 'n':
# break
# else:
# break
标签:循环体,name,Python,代码,基础,else,print,执行
From: https://www.cnblogs.com/lzjjjj/p/16735951.html