流程控制常见例题,归纳总结

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.编写用户登录程序

要求:

  1. 有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
  2. 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
考察点:while True 一直循环  ifin的身份判断  break的结束循环
解题思路:
1. 首先第一点如果输入的用户名在黑名单中,那么就结束了,不要往下了走了。所以这里肯定有if语法判断在不在黑名单。其次对于判断个体在不在群体里面,需要用到身份运算符in2. 如果用户名不在黑名单,那么下一步判断用户名与密码是否正确的操作,肯定应该放在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,代码运行有问题。
image
.
下面这张图流程图画错了
image
.
image

3.编写用户登录程序

要求:
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序

考察点:while 循环  if的身份判断  break的结束循环
解题思路:
1. 这个主体要求是登录,所以肯定有账号密码的输入,及if的判断结构。
2. 有关于限制循环次数的,那么代码里面肯定有计数器,和循环结构while3. 在循环过程中当输入密码正常,或者输错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

image

此类的解题思路,都可以画流程图,先画主要结构,然后根据要求,补全次要结构。
代码的编写思路也是这样,先别急着写代码,想一下哪个是主要运行的代码结构,先编主代码,再根据要求补全次要代码结构。

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
		
		

image

image

image

其他人博客相关流程控制例题:

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('请您配合调查')
posted @   tengyifan  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示