作者:里枯萎 | 来源:互联网 | 2023-02-02 16:08
写在开头,昨天是补全了八种常见数据类型的剩下三种、用户交互、常用运算符,今天主要学习流程控制很重要昨日作业补充另一种方法:原理:可以将表格整体看成是一个字符串先定义出
写在开头,昨天是补全了八种常见数据类型的剩下三种、用户交互、常用运算符,今天主要学习流程控制很重要
昨日作业补充另一种方法:
原理:可以将表格整体看成是一个字符串
先定义出来这个字符串,需要填充的内容全部用%s预留好
info_demo = """
------------ info of %s -------------
Name : %s
Age : %s
Job : %s
---------------- end -----------------
"""
# 然后开始设计用户交互的内容
username = input('username>>>:')
age = input('age>>>:')
job = input('job>>>:')
print(info_demo % (username, username, age, job))
⇧ ⇧
!!!注意,两次username是为了对其 %s的数据个数,必须一致
一、垃圾回收机制
二、流程控制理论
插图理解:
![](https://img2.php1.cn/3cdc5/3b70/525/02527c68e52bdd6d.png)
![](https://img2.php1.cn/3cdc5/3b70/525/39995d1b2fca15bc.png)
流程控制的必备知识点:
1.python中使用缩进来表示代码的从属关系,同级则是依次执行
(一般推荐四个空格)(windows系统按TAB快捷往后缩进,shift+TAB往前缩进)
2.条件都会被转为布尔值,然后决定后面跟着的子代码要不要执行
3.如果同属于某个代码的多行子代码 必须要保持相同的缩进量
例:
while True:
age = int(input('请输入年龄>>>:'))
if 机会 == 3:
print('您已经猜了三次了,是否继续尝试 Y/N')
choice = input('您的选择:')
4.如果上一行代码的结尾如果是冒号 那么下一行代码必缩进
(注意冒号!一定要是英文状态打的!)
5.print没有拥有子代码的权限
⬇⬇
![](https://img2.php1.cn/3cdc5/3b70/525/5e3fcf94a432b8f0.png)
三、分支结构
单单一个if分支结构
根据设置的条件做判断,条件成立后就执行子代码
例:
age = 20
if age <24:
print('年轻真好啊')
if 与 else 连用
如果if带着的条件成立,就不走else——(同级情况下)
如果if不成立,就走else的子代码 ——(同级情况下)
二者连用时,永远不会同时执行
例:
age = 25
if age <24:
print('年轻真好啊')
else:
print('已经不年轻了')
if与elif else 一起连用
elif 的意思是1不成立看2,2不成立看3可以一直跟,不是else的(是|非)的选择,如果三者连用,else做收尾
例:
age = 25
if age <18:
print('青少年')
elif age <40:
print('青年')
elif age <60:
print('中年')
else:
print('老年')
if判断的嵌套(很难但是重要)
写的时候一定要注意elif else的对齐目标,决定代码的走向,如果条件太绕很容易出错,初期可以画图来梳理嵌套的流程
例:
路上看到一个小姐姐,如果很漂亮,上去要微信,两种结果
→1.给了
→2.没给,可惜了
给了微信问是去吃饭还是唱歌,两种结果
→1.吃饭
→2.唱歌
如果转过头发现不漂亮,不好意思认错人了
代码实现:
is_beautiful = True # 判断的前置条件
is_success = True # 判断的前置条件
if is_beautiful:
print('小姐姐能否加个微信')
if is_success:
choice = input('小姐姐吃饭还是唱歌?')
print('choice')
else:
print('可惜了!')
else:
print('不好意思认错人了')
![](https://img2.php1.cn/3cdc5/3b70/525/c05b28a36bb6da44.png)
四、whlie循环
while 条件:
条件成立之后循环执行的子代码块
格式:
while+空格+判断条件+:(英文的)+(换行缩进)子代码
原理:
先判断条件成立不,成立就执行循环的子代码,子代码执行完后立马回到最初的条件判断处,再次判断,如果成立,继续循环,如果不成立,结束循环体代码,按照同while该行相同缩进格式的后续代码依次执行
两个与循环有关的单词
break 打破,打破当层循环
continue 让循环体代码直接回到条件判断处重新判断
代码实现:
1.打印1到10
count = 1
while count <11:
print(count)
count += 1
2.打印1到10,如果到6,结束
count = 1
while count <11:
print(count)
count += 1
if count > 6:
break
3.打印1到10,但是跳过5
count = 1
while count <11:
if count == 5:
count += 1
continue
print(count)
count += 1
while 与 else
如果循环体代码没有被人为打断(比如说break,contiue),正常执行完,就会执行else的子代码,否则不执行
count = 1
while count <11:
print(count)
count += 1
else:
print('嗨害嗨')
执行
count = 1
while count <11:
print(count)
count += 1
if count > 6:
break
else:
print('嗨害嗨')
不执行
作业:
1.根据用户输入内容打印其权限
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
解答:
username = input('请输入用户名>>>:')
if username == 'jason':
print('超级管理员已登录')
elif username == 'tom':
print('普通管理员已登录')
elif username == 'jack' and 'rain':
print('业务主管已登录')
else:
print('普通用户已登录')
2.编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
解答:
black_user_list = ['jason','kevin','tony']
username = input('请输入用户名>>>:')
password = input('请输入用户密码>>>:')
if username in black_user_list:
print('网络错误,登录失败')
else:
print('登录成功')
3.编写用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
解答:
count = 0
while count <3:
username = input('请输入用户名>>>:')
password = int(input('请输入密码>>>:'))
if username == 'Jack' and password == 666:
print('欢迎回来,Jack')
break
else:
print('用户或者密码错误,请检查后重新输入')
count += 1
4.猜年龄的游戏
假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序
解答:
基本
while True:
age = int(input('请输入年龄>>>:'))
if age > 18:
print('猜大了')
elif age <18:
print('猜小了')
else:
print('恭喜猜对')
break
拔高
n = 18
count = 0
while count <3:
guess_age = int(input("请输入猜写年龄>>>:"))
if guess_age > n:
print('猜大了')
elif guess_age print('猜小了')
elif guess_age == n:
print('恭喜猜对')
break
count += 1
if count >=3:
choice = input('是否继续,继续将获得三次机会!y/n 请输入>>>:')
print(choice)
if choice == 'y':
while count <6 :
guess2 = int(input('请输入数字>>>:'))
if guess2 > n:
print('还是猜大了')
elif guess2 print('还是猜小了')
else:
print('太棒了,正确了')
break
count += 1
if count == 5:
print('最后一次机会了!')
if count == 6:
print('没有机会了!!\n游戏结束,感谢游玩')
else :
print('游戏结束,感谢游玩')
break