首页 > 其他分享 >垃圾回收机制/控制流程/分支结构/循环结构

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

时间:2022-09-27 20:45:35浏览次数:50  
标签:elif 循环体 代码 回收 else 计数 垃圾 print 结构

今日内容详细

  • 垃圾回收机制
  • 流程控制理论/必备知识
  • 分支结构
  • 循环结构

1.垃圾回收机制:

# 在一些编程语言中 内存的申请以及它的释放都需要程序员自己编写代码才可以实现
# 但是在Python中却不需要此操作,通过自带的垃圾回收机制帮助我们管理
垃圾回收机制分为三种:
1.引用计数:
例子:
name = '小明'  # 此时字符串小明已经绑定了变量名name,在内存中已经有了'小明'的位置 那么此时'小明'身上的引用计数为:1
name1 = name  # 此时name1 = name数据值'小明'身上的引用计数就为:2 因为 name1 与 name 变量名都指向数据值'小明'
del name1  # 此时'小明'身上的引用计数就-1 为:1   del是删除的意思
由此垃圾回收机制的概念就显示出来了:
	当数据值身上的引用计数为0时,就会被垃圾回收机制识别当作垃圾回收掉
    当数据值身上的引用计数不为0时,就永远不会被垃圾机制回收掉

变量名指向数据值时,此时数据值引用计数为1

image

当两个变量名同时指向数据值时,此时数据值的引用计数为2

image

当del name 的时候,数据值的引用计数就会-1,但是只要它的引用计数不为零它就不会被识别为垃圾

image

2.标志清除
标志清除它主要针对与循环引用问题:
    在此之前我们来介绍一下列表的方法: .append()
    此方法是将()内的数据值添加到想要添加的地方
    代码例子
    list = ['Google', 'Runoob', 1997, 2000]
    l1 = ['baidu', 'tianmao']
    list.append(l1)
    print("更新后的列表 : ", list)

列表.apppend()方法 在列表中添加新的数据

image

# 我们回到标志清除部分:
例子:
l1 = [55,66]  # 数据值引用计数为1
l2 = [77,88]  # 数据值引用计数为1
l1.append(l2)  # 此时 l1 = [55,66,[77,88]] 它的引用计数为:2
l2.append(l1)  # 此时 l2 = [77,88,[55,66]] 它的引用计数为:2
del l1  # 断开变量名l1与列表的绑定关系   引用计数为1
del l2  # 断开变量名l2与列表的绑定关系   引用计数为1

image

# 当内存占用达到临界值的时候 程序会自动停止 然后扫描程序中所有的数据
# 并给只产生循环引用的数据打上标记 之后一次性清除
3.分代回收:
	垃圾回收机制的频繁运行也会损耗各项资源
    它会将数据进行分类
    如果变量名出现的频率占比很高,那么检测频率就低一些
    如果变量名出现的频率占比中等,那么检测频率就变得中等 
    如果变量名出现的频率很低,那么检测频率就很高

差图片

2.流程控制理论

流程控制就是控制事物的执行流程
事物执行流程可以分为三种:
1.顺序结构:从上往下一行一行依次执行
2.分支结构:在从上往下的某一点,根据不同的条件做出不同的执行策略
3.循环结构:事物的执行会根据某个条件重复执行
# 我们在日后的代码世界中 很多时候可能会出现三者混合的情况

控制流程必备知识点:

1.python中使用缩进(空格)来表示代码的从属关系
	从属关系:缩进的代码(子代码)是否执行取决于上层是否有缩进
2.并不是所有代码都可以拥有子代码:
	可以拥有子代码的: if while else (待添加)
3.如果有多行子代码属于同一个父代码,那么这些子代码需要保证有相同的缩进量
4.python中针对缩进量没有具体的要求 但是推荐使用四个空格(windows中可以直接用tab键)
5.当某一行代码需要编写子代码的时候 那么这一行代码的结尾肯定需要冒号
6.相同缩进量的代码彼此之间平起平坐 按照顺序结构依次执行

3.分支结构

  • 单if 分支结构
  • if else 分支结构
  • if elif else 分支结构
  • if 嵌套
1.单if分支结构
	if 条件
    	条件成立后执行代码块
例:
username = input('请输入用户名:')
if username == 'bot':
    print('老师好')
print('结束程序')

image

if 条件执行流程

image

2.if else 分支结构
	if 条件:
    	条件成立后执行子代码
    else:
        条件不成立后执行子代码
  例:
username = input('请输入用户名:')
if username == 'bot':
    print('老师好')
else:
    print('输入错误')
print('结束程序')

image

3.if elif else 分支结构:
if 条件1:
	条件成立后执行子代码
elif 条件2:
	条件成立后执行子代码(前提是条件1不成立)
elif 条件3:
	条件成立后执行子代码(前提是条件1、2都不成立)
else:
    上述条件不成立后执行子代码
# 如果其中有一个条件成立,那么就会往下运行,不会再与其他同级条件做判断。
例:
socer = input('请输入你的分数:')
# if int(socer) >= 90:
#     print('优秀')
# elif int(socer) >= 80:
#     print('良好')
# elif int(socer) >= 70:
#     print('一般')
# elif int(socer) >= 60:
#     print('及格')
# elif int(socer) >= 50:
# else:
#	  print('挂科')
int() 可以把input()获取到的字符串类型转换为整型(前提是数字)

image

顺序、分支、循环结构 图解

image

if 嵌套
if 嵌套就是if 下套 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做不出来这件事')

4.循环结构

我们如果想让一些代码反复的执行可以用到:
while 条件:
	条件成立之后执行子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后返回到条件判断处 判断调教是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次继续执行 直到条件不成立才会结束循环体代码的执行

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

我在循环前面添加了一个变量 在打印后边添加一个变量+1的语句 这样在循环运行到3次时候就不满足条件了 不会一直运行下去

image

break  # 强行结束循环体
	while循环体代码一旦执行到break会直接结束循环
continue  # 直接跳到条件判断处
	while循环体代码一旦执行到continue会结束本次循环 开始下一次循环

5.练习题及答案:

1.根据用户输入内容打印其权限
    '''
    jason --> 超级管理员
    tom  --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    '''
    job = input('请输入您的名字:')
if job == 'jason':
    print('超级管理员')
elif job == 'tom':
    print('普通管理员')
elif job == 'jack' and 'rain':
    print('业务主管')
else:
    print('普通用户')

2.编写用户登录程序
 要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
black_user_list = ['jason', 'kevin', 'tony']
name = input('请输入用户名:')
if name not in black_user_list:
    print('允许登录')
else:
    print('您在黑名单内,不允许登录')
3.编写用户登录程序
 用户如果登录失败 则只能尝试三次
 用户如果登录成功 则直接结束程序

4.猜年龄的游戏
 假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
 基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
 拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序
    基本要求:
    while True:
    age = 18
    choice = input('请输入您要猜测的年龄:')
    choice1 = int(choice)
    if choice1 < 18:
        print('猜小了')
    elif choice1 > 18:
        print('猜大了')
    elif choice1 == 18:
        print('猜对了')
        break
    拔高练习:
    count = 0
while count < 4:
    age = 18
    choice = input('请输入您要猜的年龄:')
    choice1 = int(choice)
    if choice1 == 18:
        print('猜对了')
        break
    elif choice1 < 18:
        print('猜小了')
        count += 1
        print('输入错误还剩%s次机会' % (3 - count))
    elif choice1 > 18:
        print('猜大了')
        count += 1
        print('输入错误还剩%s次机会' % (3 - count))
    if (3-count) == 0:
        choice2 = input('您的机会已经用完了,是由要继续?  输入y继续n退出')
        if choice2 == 'y':
            count = 0
            continue
        elif choice2 == 'n':
            print('退出程序')

标签:elif,循环体,代码,回收,else,计数,垃圾,print,结构
From: https://www.cnblogs.com/ddsuifeng/p/16735910.html

相关文章

  • 垃圾回收机制和流程控制三大重点
    今日分享垃圾回收机制流程控制理论(*****重点)流程控制之分支结构(*****重点)流程控制之循环结构(******重点)垃圾回收机制"""有一些语言内存空间的申请和释放......
  • 垃圾回收机制 流程控制理论
    今日内容垃圾回收机制'''有一些语言内存空间申请和释放都需要程序员自己写代码才可以完成但在python里垃圾回收机制自动管理'''1.引用计数name='sun......
  • P4 MAVEN的目录结构
    #4MAVEN的目录结构和手动创建MAVEN项目##4.1MAVEN的目录结构   5MAVEN项目的编译和启动5.1准备工作第一次会下载很多包,要改变一下下载路径会下载很多......
  • 垃圾回收机制
    目录引入1.引用计数2.标记清除3.分代回收引入 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收......
  • 数据结构学习----树的遍历
    树的遍历前言在一个平常的星期二下午,一节数据结构课中,想着做点什么的我,打开了力扣。正好老师在讲树,我也从二叉树最基础的遍历开始刷题,没想到打开了新世界的大门····......
  • python垃圾回收机制、流程控制理论、流程控制理论必备知识、分支结构、循环结构
    目录垃圾回收机制1引用计数2标记清除3分代回收流程控制理论流程控制必备知识分支结构循环结构垃圾回收机制一些语言存放空间和释放都需要程序员自己去写代码完成,但是pyth......
  • 垃圾回收,if else while
    今日内容概要1垃圾回收机制2流程控制理论3流程控制必备知识4分支结构5循环1垃圾回收机制"""为了节省空间内存,减轻电脑压力,python有自带的垃圾回收机制自动......
  • 7、python入门篇 垃圾回收和流程控制
    目录今日内容总结一、垃圾回收机制1、引用计数2、标记清除3、分类代收二、流程控制1、理论2、必备知识3、分支结构4、循环结构今日内容总结一、垃圾回收机制垃圾回收机......
  • python之流程控制-分支结构、循环结构
    流程控制编写程序,是将自己的逻辑思想记录下来,使得计算机能够执行的过程。而流程控制,则是逻辑结构中十分重要的一环。在程序中,基础的流程结构分为顺序结构、分支结构、顺......
  • 垃圾回收机制和流程控制理论
    垃圾回收机制和流程控制理论今日内容概要垃圾回收机制流程控制理论(重要)流程控制之分支结构(重要)流程控制之循环结构(重要)今日内容详细垃圾回收机制"""有一些语言......