流程控制常见例题,归纳总结
1.根据用户输入内容打印其权限
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
考察点:这题只考察一个点 if elif else 语法使用。
解题思路:看到这种根据输入的信息进行判断,有2种以上的执行结果的,坑定是需要多分支结构的。
代码实现:
username = input('username>>>:') # 定义变量接收用户名,只要碰到需要用户输入的,肯定要对要定义一个变量名 = input()
if username == 'jason': # 判断接收的数据是否成立
print('超级管理员') # 成立执行
elif username == 'tom': # 判断接收的数据是否成立
print(' 普通管理员') # 成立执行
elif username == 'jack' or username =='rain': # 判断接收的数据是否成立
# 注意此处不能写成 elif username == 'jack' or 'rain':因为如果写成这样你,你输入除了jason tom jack 以外所有的名字都会直接输出业务主管!!!写成这样会先判断username等不等于'jack'如果不等于,再判断字符串'rain',字符串自带的布尔值是ture,所以就会执行他的子代码print('业务主管')。
print('业务主管') # 成立执行
else: # 都不成立执行
print('普通用户')
补充点:上面的代码也可以换成:
elif username in ['jack', 'rain']: # 正确写法
2.编写用户登录程序
要求:
- 有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony'] - 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
考察点:while True 一直循环 if与in的身份判断 break的结束循环
解题思路:
1. 首先第一点如果输入的用户名在黑名单中,那么就结束了,不要往下了走了。所以这里肯定有if语法判断在不在黑名单。其次对于判断个体在不在群体里面,需要用到身份运算符in 。
2. 如果用户名不在黑名单,那么下一步判断用户名与密码是否正确的操作,肯定应该放在else的子代码里面。
3. 当在判断用户名与密码不正确后,应该还可以返回在输入账户密码的界面,所以循环结构的while语句应该是在输入用户名的操作之前,并且此处没有对于输错次数的限制,所以while可以不设条件,让程序一直循环,所以一般就用while True:一直循环子代码。
4. 如果是输入的用户名在黑名单里,还给不给再次输入账号的机会?显然是不给。
5. 输入的账号密码正确后,应该有打印结果的功能后并结束该循环。
代码实现:
black_user_list = ['jason','kevin','tony']
while True:
username = input('请输入用户名:')
if username in black_user_list:
print('哥们你在黑名单里')
break # 这个地方break一定不能省
else:
passward = input('请输入密码:')
if username == 'oscar' and passward == '123':
print('欢迎进入')
break # 这个地方也是,break不能省
else:
print('账号或密码错误,请重新输入:')
这个没加break,代码运行有问题。
.
下面这张图流程图画错了
.
3.编写用户登录程序
要求:
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
考察点:while 循环 if的身份判断 break的结束循环
解题思路:
1. 这个主体要求是登录,所以肯定有账号密码的输入,及if的判断结构。
2. 有关于限制循环次数的,那么代码里面肯定有计数器,和循环结构while 。
3. 在循环过程中当输入密码正常,或者输错3次账号密码,就需要结束该循环。
count_num = 1 # 6. 定义一个计数器
while True:
if count_num == 4: # 8.先判断当前尝试了几次
print('很抱歉 您已经尝试了三次')
break # 9.结束循环体代码
username = input('username>>>:') # 1.获取用户数据
password = input('password>>>:') # 2.校验数据是否正确
if username == 'jason' and password == '123': # 3.
print('登录成功') # 4.
break # 5.结束循环体代码
else:
print('用户名或密码错误')
count_num += 1 # 7.每错误一次就让计数器自增1
此类的解题思路,都可以画流程图,先画主要结构,然后根据要求,补全次要结构。
代码的编写思路也是这样,先别急着写代码,想一下哪个是主要运行的代码结构,先编主代码,再根据要求补全次要代码结构。
4.猜年龄的游戏
假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
解题思路:没有猜测限制,就没有计数器而且肯定是while循环结构,可以一直不停的输入年龄进行判断,猜测的结果只有3种情况,所以用if的多分支结构为主题语法结构。
基本要求代码实现:
real_age = 18
while True:
guess_age = int(input('你猜一猜我的年龄>>>:'))
if guess_age > real_age:
print('猜大了')
elif guess_age < real_age:
print('猜小了')
else:
print('猜对了')
break
第一个比较简单,稍微想一想就应该想出来了。
拔高:
拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序
代码实现:
real_age = 18
count_num = 1
while True:
if count_num == 4:
choice = input('您已经尝试了三次 是否继续尝试(n/y)>>>:')
# 11.判断用户输入的选择
if choice == 'y':
# 12.重置计数器
count_num = 1
else:
print('下次再来玩哟')
break
guess_age = int(input('你猜一猜我的年龄>>>:'))
if guess_age > real_age:
print('猜大了')
count_num += 1
elif guess_age < real_age:
print('猜小了')
count_num += 1
else:
print('猜对了')
break
。
。
其他人博客相关流程控制例题:
if的多重嵌套:
anwser=input('您喝酒了吗?y/n:')
if anwser=='y':
proof=eval(input('请输入酒精含量:'))
if proof<20:
print('下次请不要饮酒后驾车')
elif 20<proof<60:
print('您已构成酒后驾车,请配合调查')
else:
print('您已构成醉驾,请配合调查')
elif anwser=='n':
print('请通行')
else:
print('请您配合调查')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY