zoukankan      html  css  js  c++  java
  • 16.python模拟登录程序和三级菜单

    模拟登录程序需求:

    1. 用户输入帐号密码进行登陆

    2. 用户信息保存在文件内

    3. 用户密码输入错误三次后锁定用户

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    i=0
    while i<3:
        username = input("请输入您的用户名:")
        lock_file = open('account_lock','r')
        lock_list = lock_file.readlines()
        for lock_line in lock_list:
            lock_line =lock_line.strip('
    ')
            if username == lock_line:
                lock_file.close()
                exit("您的账户已被锁定")
        user_account = open('user_account','r')
        user_list = user_account.readlines()
        for user in user_list:
            (user_infile,password_infile) = user.strip('
    ').split()
            if username == user_infile:
                j=0
                while j<3:
                    password=input("请输入您的密码:")
                    if password == password_infile:
                        user_account.close()
                        exit("登录成功,欢迎您")
                    else:
                        print("您输入的密码错误,您还有%s次机会输入"%(2-j))
                    j += 1
                else:
                    lock_file = open('account_lock','a')
                    lock_file.write(username +'
    ')
                    exit("密码输入次数超限,您的用户已被锁定")
        else:
            print("您输入的用户名不存在,您还有%s次机会"%(2-i))
            i += 1
    lock_file.close()
    user_account.close()

    三级菜单

    作业需求:

    1. 运行程序输出第一级菜单

    2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

    3. 菜单数据保存在文件中

    4. 让用户选择是否要退出

    5. 有返回上一级菜单的功能

     代码如下:

    # Author:pengp
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    menu = {
        "上海": {
            "浦东": ["张江", "唐镇"],
            "嘉定": ["娄塘", "封浜"],
            "宝山": ["罗店", "月浦"]
        },
        "北京": {
            "海淀": ["上地", "中关村"],
            "朝阳": ["朝阳一镇", "朝阳二镇"]
        },
        "江苏": {
            "南京": ["浦口", "六合"],
            "苏州": ["昆山", "太仓"],
            "南通": ["如东", "启东"]
        },
        "湖北": {
            "武汉": ["汉口", "武昌"],
            "黄冈": ["麻城", "罗田"],
            "孝感": ["应城", "大悟"]
        }
    
    }
    
    current_level = menu
    last_level = []
    while True:
        for key in current_level:
            print(key)
        choice = input(">>>:")
        if len(choice) == 0:continue
        if choice == "b":
            if not last_level : break
            current_level = last_level[-1]
            last_level.pop()
        elif choice == 'q':
            exit("退出成功")
        if choice not in current_level:continue
        last_level.append(current_level)
        current_level = current_level[choice]
  • 相关阅读:
    hdu 5100 n*n棋盘放k*1长方条最多覆盖面积
    poj 3635/hdu 1676 Full Tank? 车辆加油+最短路
    poj 3613 经过k条边最短路 floyd+矩阵快速幂
    2014上海全国邀请赛 解题报告
    漫谈程序员系列:看看你离优秀有多远
    C2第七次作业解题报告
    C++ STL
    hdu 5098 双队列拓扑排序
    深度学习数据集 近百个开源数据集
    helper工具包——基于cifar10数据集的cnn分类模型的模块
  • 原文地址:https://www.cnblogs.com/pengp/p/6832881.html
Copyright © 2011-2022 走看看