首页 > 编程语言 >python入门第五课--

python入门第五课--

时间:2022-09-27 15:59:07浏览次数:46  
标签:username 循环体 python 代码 第五课 else -- print 执行

今日内容概要

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

今日内容详细

作业讲解

1.获取用户输入并打印成下列格式
   ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Job  : Teacher
    ---------------- end -----------------
解题思路:考察的是格式化输出,与用户交互知识的结合使用。
# 1.先制定一个打印的模板(利用格式化输出,建立一个固定内容的字符串模板,然后将需要输入信息的地方改为 %s )
info_demo ="""
        ------------ info of %s -------------
        Name : %s
        Age  : %s
        Job  : %s
        ---------------- end -----------------
    """

# 2.将需要输入的数据值,利用input()绑定一个变量名,获取用户输入,
username = input('username>>>:')  # ()括号里面可以写一些提示输入的信息
age = input('age>>>:')
job = input('job>>>:')
print(info_demo % (username, username, age, job))  # 3.格式化输出   注意:username变量的数据值,在格式化模板里要用两个,所以要写两次。按下回车后,依次输入变量名绑定的input所需要输入的数据信息后,按下回车键

image
.
image


2.准备说出下列变量名v绑定的结果
    v1 = 1 or 3
    v2 = 1 and 3
    v3 = 0 and 2 and 1
    v4 = 0 and 2 or 1
    v5 = 0 and 2 or 1 or 4
    v6 = 0 or False and 1
可以用python解释器,或者pycharm软件运算。
python解释器不需要输入print,输入变量名,就会直接读出变量所绑定的结果。或者直接输入一个包含逻辑运算的数据,解释器自动帮你算出,运算后的结果。

image
.
image

垃圾回收机制

"""
有一些语言 内存空间的申请和释放都需要程序员自己写代码才可以完成
但是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.顺序结构
   			从上往下依次执行 我们之前所编写的代码都属于该结构
 		2.分支结构
       	   事物的执行会根据条件的不同做出不同的执行策略
 		3.循环结构
        	事物的执行会根据某个条件出现重复
 	ps:在代码的世界里 很多时候可能会出现三者混合
提示:作为小白 在学习流程控制的时候 建议做到代码和图形的结合

流程控制必备知识

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成立执行的子代码
   	else:
       上述条件都不成立 执行的子代码
 	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 world')
#     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则继续给用户三次猜测机会 否则结束程序

标签:username,循环体,python,代码,第五课,else,--,print,执行
From: https://www.cnblogs.com/tengyifan888/p/16734818.html

相关文章

  • 让SpringBoot也用上Fluent Validator
    前言在使用SpringBoot的时候经常需要对客户端传入的参数进行合法性的校验,校验的方法基本上都是使用SpringBoot提供的注解,有时候遇上注解不能满足需求的时候还需要在业务......
  • 代码随想录day4 ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ●
    24.两两交换链表中的节点   1classSolution{2public:3ListNode*swapPairs(ListNode*head){4//创建虚拟头结点5ListNode......
  • 【NOIP2017 提高组]】宝藏
    【NOIP2017提高组】宝藏f[S][i]表示集合S的点构成的生成树,树高为i({i}为0)的最小花费转移:枚举S的子集S'为高度为i-1的树(S'可扩展出S):f[S][i]<-f[S'][i]+cost预处......
  • 容器编排工具介绍(一)
    Dockercompose:更适合单机编排,只能面向一个docker主机进行编排。Dockerswarm:能够将多个docker主机整合为同一个平台之下的管理机制的一个集群工具,能够将多个docker主机......
  • 垃圾回收机制GC
    垃圾回收机制GC我们已经知道,name='leethon'这一赋值变量的操作,是将变量与数据值相绑定。而数据值是存储到内存中的,有时变量会重新赋值即绑定其他数据值,而使得原本的数......
  • Git 修改历史提交记录
    gitrebase-i 列出commit列表#本地仓库没push到远程仓库的commit信息$gitrebase-i#最近5条$gitrebase-iHEAD~5#最近5条$gitrebase-iHEAD~5#列......
  • CF494B Obsessive String KMP+前缀和优化DP
    给一份看起来字数比较少的题解?题意给一个字符串\(s\),和一个字符串\(t\)。在\(s\)中取出任意多个不重叠的子串(可以有子串没有被取出),使得每个子串都包含\(t\),求方案......
  • 快学 VisionPro 系列教程 笔记
    视频来源:b站https://www.bilibili.com/video/BV1ZS4y197mk/?spm_id_from=333.337.search-card.all.click&vd_source=ed0219dc0ed7a6e1d0ced6918306b5b5   VisionPr......
  • for in 跟for of 的区别
    forin遍历的是数组的索引,而forof遍历的是数组元素值forin总是得到对象的key或数组,字符串的下标forof总是得到对象的value或数组,字符串的值forof不能遍历对象......
  • 【Devops】【测试左移】代码覆盖率统计的几个脚本
    一、在测试服务器部署路径下注入jacocoinsert.sh是用于将jacoco.sh中的内容打桩到catalina.sh的脚本中,需传一个参数,为服务器的ip地址。使用方式为shinsert.sh<server_ip>......