首页 > 其他分享 >垃圾回收机制和流程控制理论

垃圾回收机制和流程控制理论

时间:2022-09-27 19:13:42浏览次数:57  
标签:username count elif 流程 回收 else 垃圾 print 代码

垃圾回收机制和流程控制理论

今日内容概要

  • 垃圾回收机制
  • 流程控制理论(重要)
  • 流程控制之分支结构(重要)
  • 流程控制之循环结构(重要)

今日内容详细

垃圾回收机制

"""
有一些语言 内存空间的申请和释放都需要程序员自己写代码才可以完成
但是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.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成立之后执行的子代码
    elif 条件4:
        上述条件都不成立执行的子代码
    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 word')
    count += 1 # count = count + 1
print('想不想干饭')

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

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

作业

整理今日内容及博客

1.根据用户输入内容打印其权限
    '''
    jason --> 超级管理员
    tom  --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    '''
2.编写用户登录程序
 要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
3.编写用户登录程序
 用户如果登录失败 则只能尝试三次
 用户如果登录成功 则直接结束程序
4.猜年龄的游戏
 假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
 基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
 拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序

1.根据用户输入内容打印其权限

username = input("请输入用户名:")
if username == "jason":
    print("超级管理员")
elif username == "tom":
    print("普通管理员")
elif username == "jack" or "rain":
    print("业务主管")
else:
    print("普通用户")

2.编写用户登录程序

black_user_list = ['jason', 'kevin', 'tony']

username = input("请输入用户名:")
userpwd = input("请输入密码:")

if username in black_user_list:
    print('您被拒绝使用!')
else:
    print('欢迎使用!')

3.编写用户登录程序

username_dict = {'jason': 123, 'tony': 321, 'zpf': 999, 'alex': 666}

count = 3

username_list = []
userpwd_list = []
for k, v in username_dict.items():
    username_list.append(k)
    userpwd_list.append(v)
while True:
    username = input('请输入用户名:')
    userpwd = input('请输入密码:')
    userpwd = int(userpwd)
    if username in username_list:
        if userpwd in userpwd_list:
            print("欢迎使用!")
            break

        else:
            count -= 1
            print("密码错误,请重新输入剩余次数{}".format(count))
            if count == 0:
                break
    else:
        count -= 1
        print("用户名错误,请重新输入剩余次数{}".format(count))
        if count == 0:
            break

4.猜年龄的游戏

age = 18

print("欢迎玩这个游戏")
while True:

    usernumber = input('请输入你猜的年龄:')
    if usernumber.isdecimal():
        usernumber = int(usernumber)
        if usernumber > 18:
            print("太大了,请重新猜")
            continue
        elif usernumber < 18:
            print("太小了,请重新猜")
            continue
        elif usernumber == 18:
            print("恭喜你,猜对了!")
            break
    else:
        print("必须是数字")
        continue

拔高练习

age = 18
count = 3

print("欢迎玩这个游戏")
while True:

    usernumber = input('请输入你猜的年龄:')
    if usernumber.isdecimal():
        usernumber = int(usernumber)
        if usernumber > 18:
            count -= 1
            print("太大了,请重新猜")
            print("剩余机会{}".format(count))
            if count == 0:
                break
        elif usernumber < 18:
            count -= 1
            print("太小了,请重新猜")
            print("剩余机会{}".format(count))
            if count == 0:
                break
        elif usernumber == 18:
            print("恭喜你,猜对了!")
            break
    else:
        print("必须是数字")
        continue

标签:username,count,elif,流程,回收,else,垃圾,print,代码
From: https://www.cnblogs.com/zpf1107/p/16735602.html

相关文章

  • 垃圾回收机制、流程控制、分支结构、循环结构
    垃圾回收机制"""有一些语言内存空间的申请和释放都需要程序员自己写代码才可以完成但是python却不需要通过垃圾回收机制自动管理"""1.引用计数name='jason' ......
  • 垃圾回收机制 流程控制
    垃圾回收在程序执行过程中,变量绑定和引用以积极各种内存操作,使用过后不在使用,如果不清理就会产生垃圾数据,占用大量内存,导致计算机不能正常运行,有一些语言内存空间的申请......
  • 垃圾回收机制及流程控制
    1、昨日内容回顾布尔值(bool)常见的布尔值为False的数据值、布尔值的变量的命名方式。元组(tuple)不可变数据类型。集合(set)用来做成员运算、空集合。计算机......
  • 流程控制
    今日内容回顾垃圾回收机制流程控制理论流程控制之分支结构(重要)流程控制之循环结构(重要)今日内容回顾详情垃圾回收机制1.引用计数引用计数是计算机编程语言中的一......
  • 软件测试的流程
    1.需求分析2.编写测试用例(测什么怎么测)3.评审测试用例4.搭建测试环境5.等待程序开发包6.部署测试包7.冒烟测试(测试主体功能是否有问题)8.执行测试用例9.bug跟踪处......
  • 内存回收、流程控制和循环
    垃圾回收机制"""有一些语言内存空间的申请和释放都需要程序员自己写代码才可以完成但是python却不需要通过垃圾回收机制自动管理"""1.引用计数name='jason'......
  • 垃圾回收机制GC
    垃圾回收机制GC我们已经知道,name='leethon'这一赋值变量的操作,是将变量与数据值相绑定。而数据值是存储到内存中的,有时变量会重新赋值即绑定其他数据值,而使得原本的数......
  • 通过Thread Pool Executor类解析线程池执行任务的核心流程
    摘要:ThreadPoolExecutor是Java线程池中最核心的类之一,它能够保证线程池按照正常的业务逻辑执行任务,并通过原子方式更新线程池每个阶段的状态。本文分享自华为云社区《【高......
  • C# 手动回收
    1、正常C#是继承GC,是无需手动回收释放,但是有时候确实遇到相关异常报错,手动释放是可以的finally{if(conn!=null&&conn.State!=Con......
  • Java流程控制05(switch多选择结构)
    多选择结构还有一个实现方式就是switchcase语句switchcase语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支语法:switch(表达式){casevalue......