列表的练习(会员管理系统以及模拟入栈出栈)_b.查看会员资料。会员登录后,若要查看某个会员的详细信息,可在会员列表 中单击查-程序员宅基地

技术标签: Python  

1.用户登陆系统要求:

“”"
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘redhat’]
passwd = [‘123’,‘456’]
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,退出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
“”"
实现:

users = ['root','westos']
passwords = ['123','456']

#尝试登录次数
trycount = 0

while trycount < 3:
    inuser = input('用户名: ')
    inpassword = input('密码: ')

    trycount += 1

    if inuser in users:
        index = users.index(inuser)
        password = passwords[index]

        if inpassword == password:
            print('%s登录成功' %(inuser))
            break
        else:
            print('%s登录失败 : 密码错误' %inuser)
    else:
        print('用户%s不存在' %inuser)
else:
    print('尝试超过三次,请稍后再试')

在这里插入图片描述

2.管理员用户管理系统要求:

“”"
#1. 后台管理员只有一个用户: admin, 密码: admin
#2. 当管理员登陆成功后, 可以管理前台会员信息.
#3. 会员信息管理包含:

  • 添加会员信息

  • 删除会员信息

  • 查看会员信息

  • 退出

  • 添加用户:
    1). 判断用户是否存在?
    2). 如果存在, 报错;
    3). 如果不存在,添加用户名和密码分别到列表中;

  • 删除用户
    1). 判断用户名是否存在
    2). 如果存在,删除;
    3). 如果不存在, 报错;
    “”"
    实现:

print('管理员登录'.center(50,'*'))	##美化管理系统
inuser = input('UserName:')
inpasswd = input('Password:')

#所有会员用户名
users = ['root','westos']
#所有会员密码
passwds = ['123','456']

if inuser == 'admin' and inpasswd == 'admin':
    print('管理员登录成功!')
    print('会员管理'.center(50,'*'))
    while True:				##写一个循环
        print("""			##列出选项
            操作目录
    1.  添加会员信息
    2.  删除会员信息
    3.  查看会员信息
    4.  退出
    """)
        choice = input('请选择你的操作:')
        if choice == '1':
            print('添加会员信息'.center(50,'*'))
            AddUser = input('添加会员名:')
            if AddUser in users:
                print('用户%s已经存在' %(AddUser))
            else:
                AddPasswd = input('密码:')
                users.append(AddUser)
                passwds.append(AddPasswd)
                print('添加用户%s成功!' %AddUser)
        elif choice == '2':
            print('删除会员信息'.center(50,'*'))
            DelUser = input('删除会员名:')
            DelIndex = users.index(DelUser)
            users.remove(DelUser)
            passwds.pop(DelIndex)
            print('删除会员%s成功!' %DelUser)
        elif choice == '3':
            print('查看会员信息'.center(50,'*'))
            print('\t用户名\t密码')
            UserCount = len(users)
            for i in range(UserCount):
                print('\t%s\t%s' %(users[i],passwds[i]))
        elif choice == '4':
            exit()
        else:
            print('请输入正确的选择')
else:
    print('管理员登录失败!')

在这里插入图片描述

3.模拟入栈出栈要求

先入后出,后入先出
实现:

stack = []
info = """
        栈操作
    1.入栈
    2.出栈
    3.栈顶元素
    4.栈的长度
    5.栈是否为空
    6.退出
"""
while True:
    print(info)
    choice = input('请输入选择:')
    ##入栈
    if choice == '1':
        item = input('入栈元素:')
        stack.append(item)
        print('元素%s入栈' %item)
    ##出栈
    elif choice == '2':
        if not stack:
            print('栈为空,不能出栈')
        else:
            item = stack.pop()
            print('%s元素出栈' %item)
    elif choice == '3':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈顶元素为%s' %(stack[-1]))
    elif choice == '4':
        print('栈的长度为%s' %(len(stack)))
    elif choice == '5':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈不为空')
    elif choice == '6':
        print('欢迎下次使用')
        break
    else:
        print('请输入正确的选择')

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43511217/article/details/88999272

智能推荐

程序员自己写测试了,还要测试人员做什么?-程序员宅基地

在向开发人员介绍单元测试或TDD等工程实践时,往往可以听到这样的疑问。比如:自己写的程序,自己无法从另一个角度测出问题。写bug的时间都不够了,哪有时间来写测试?开发来写...

3、Openstack 各组件介绍及运行流程_云计算各组件流程图-程序员宅基地

3.1 各组件逻辑关系图Keystone:认证服务Glance:镜像服务Nova:计算服务Neutron:网络服务Cinder:存储服务Horizon:web 界面Cellometer:监控计费Swit:对象存储Heat:编排服务(通过剧本,批量部署虚拟机)3.2 Openstack 新建云主机流程图keystone 身份认证填写创建云主机的相关配置–> nova-api --> 将相关信息保存到 MySQLnova-scheduler --> 读取 M_云计算各组件流程图

新型冠状病毒个人防护报告:如何过个安全健康年?-程序员宅基地

岁末年初,新型冠状病毒感染疫情牵动国人神经。1月20日凌晨,武汉市卫健委、北京大兴区卫健委、广东省卫健委接连发布新型冠状病毒肺炎情况。疫情发展引发大众关注,相关防护产品随之紧俏。尤其是居家出行人人必备的防护口罩一度脱销。市面上销售的口罩五花八门,有各种图案的棉布口罩,有年轻人喜欢的时尚新材料防尘口罩,有带呼气阀的防护口罩等等,这些都能预防流感等呼吸道传染病吗?答案是不能。...

Android Viewpager+Fragment切换导致界面无数据的解决以及FragmentManager is already executing transactions_fragment里面使用viewpager fragmentmanager is already-程序员宅基地

如图:顶部是三个tablayout和viewpager,我在查询航班(代号1),国内航班(代号2)和国际航班(代号3)切换的时候比如点击3在店再点1再点回3此时3没数据,我的解决方法是设置ViewPager的缓存界面数此方案适用于界面数较少的情况,避免缓存界面太多导致内存吃紧。mPager .setOffscreenPageLimit(2);智慧我再次运行报错:FragmentMan..._fragment里面使用viewpager fragmentmanager is already

德卡斯特里奥算法(De Casteljau’s Algorithm)绘制贝塞尔曲线_用的卡斯特里奥方法求贝塞尔曲线-程序员宅基地

原文:http://blog.csdn.net/Fioman/article/details/2578895 德卡斯特里奥算法可以计算贝塞尔曲线上的点C(u),u∈[0,1]。因此,通过给定一组u的值,便可以计算出贝塞尔曲线上的坐标序列,从而绘制出贝塞尔曲线。德卡斯特里奥算法的基础就是在向量AB上选择一个点C,使得C分向量AB为u:1-u(也就是∣AC∣:∣AB∣= u)。给定点A_用的卡斯特里奥方法求贝塞尔曲线

HTML 5中的存储及离线应用(一)-程序员宅基地

本系列来源于Lynda.Com.HTML5.Local.Storage.And.Offline.Applications.In.Depth,我仅做了整理的工作。先来点知识点讲解,HTML 5提供了以下几种存储方式:Local Storage;Session Storage;Web SQL Storage;Indexed database(IndexedDB);前两种

随便推点

使用orthomcl寻找蛋白家族并画Venn图-程序员宅基地

未经本人授权禁止转载。手上有三个蛋白组,需要找到里面的ortholog,并做韦恩图。但问题在于两物种直接可能存在一对多或者多对多的同源关系,所以必须先找到三个物种里涉及哪些蛋白家族,并且各家族包括哪些基因。ortholog使用orthomcl做,基本按照网上教程来,主要需要注意1.mysql需要打开本地file上传,可在orthomcl的config里面dbConnec...

Memcached源码拆分:Libevent_Thread-程序员宅基地

http://www.cnblogs.com/aga-j/archive/2011/11/04/2230603.htmlWorkerThreads.cpp 1 /* 2 #include"libevent_thread.h" 3 #include 4 #include 5 #include"conn.h" 6 #include"cq.h" 7 #i

linux bonding 详解-程序员宅基地

linux bonding一、引言现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性及其 I/O 速度就显得非常的重要, 保持服务器的高可用性和安全性是企业级IT 环境的重要指标,其中最重要的一点是服务器网络连接的高可用性, 为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的 linux

Python黑马头条推荐系统第四天 TensorFlow框架介绍和深度学习_做推荐系统用什么深度学习的框架?-程序员宅基地

深度学习与推荐系统6.1 推荐系统与深度学习关联学习目标目标无应用无6.1.1 深度学习到推荐系统深度学习发展成功与局限最近几年深度学习的流行,大家一般认为是从2012年 AlexNet 在图像识别领域的成功作为一个里程碑。AlexNet 提升了整个业界对机器学习的接受程度:以前很多机器学习算法都处在“差不多能做 demo ”的程度,但是 AlexNet 的效果跨过了很多应用的门槛,造成了应用领域井喷式的兴趣。成功的原因:是大数据,是高性能计算。大量的数据,比如说移_做推荐系统用什么深度学习的框架?

语音传输 音频采集_音频信号转换成直流电压-程序员宅基地

我想做语音传输方面的设计,驻极式咪头采集语音信号经lm358放大,用的MCU是STM32,请问该电路输出是否会超过AD的参考电压3.3V??谢谢!!lm358可以用3.3V吧,它的单电源电压范围3-32V;是想着打算C2输出就接MCU的ADC引脚,有什么问题吗??1.LM358给3.3V供电下,输入输出的范围是0~1.8V,算上直流偏置,实际就是0.9V的动态范围。2._音频信号转换成直流电压

Windows、Linux、eclipse等快捷键汇总-程序员宅基地

Ctrl键+A--全选X--剪切 C--复制(必须有选取选中,如果没有选中选区且光标在某一行的末尾是,复制的是这一行的内容)V--粘贴 (粘贴的是复制或剪切的内容)Z--撤销上一步 S--保存 (eclipse需要保存,idea不需要保存。程序员在编写代码的过程中建议要频繁保存)Windows键+D--快速返回桌面,执行win+D键时会把桌面上所有打开的窗口全部最小化的底部任务栏...