zoukankan      html  css  js  c++  java
  • 登陆系统,打印 修改。用户数据

    # 在一个文件里存多个人的个人信息,如以下
    # 用户名 密码 年龄 职位 部门
    # username password age position department
    # alex abc123 24 Engineer IT
    # rain df2@432 25 Teacher Teching


    # 1.输入用户名密码,正确后登录系统 ,打印
    # 1. 修改个人信息
    # 2. 打印个人信息
    # 3. 修改密码
    # 2.每个选项写一个方法
    # 3.登录时输错3次退出程序



    # 一次行取出所有的文件内容,并且{'alex': ['alex', 'abc123', '24', 'Engineer', 'IT', '13188888888']}
    def pick_up_all_info():
    with open('persinfo', 'r', encoding='utf-8') as read_f:
    user_dict = {}
    for line in read_f:
    user_lise = line.strip().split(',')
    user_dict[user_lise[0]] = user_lise
    return user_dict


    # 接收pick_up_info传来的参数,打印用户信息
    def print_info(all_user_info,name):
    user_info = all_user_info[name]
    msg = '''
    --------------------
    Name: %s
    Age: %s
    Job: %s
    Dept: %s
    Phone: %s
    --------------------
    '''%(user_info[2],
    user_info[3],
    user_info[4],
    user_info[5],
    user_info[6])
    print(msg)


    # 修改信息
    def chang_info_to_file(all_user_info,name):
    user_info = all_user_info[name]
    msg = '''
    1. Name: %s
    2. Age: %s
    3. Job: %s
    4. Dept: %s
    5. Phone: %s
    '''%(user_info[2],
    user_info[3],
    user_info[4],
    user_info[5],
    user_info[6])

    msg_dic = {
    '1': user_info[2],
    '2': user_info[3],
    '3': user_info[4],
    '4': user_info[5],
    '5': user_info[6]
    }
    print(msg)
    while True:
    print('当前用户信息%s' % (' '.join(user_info)))
    chioce = input('请选择要修改的选项 Q退出:').strip().upper()
    if chioce.isalnum():
    if chioce != 'Q'and chioce.isdigit():
    print('current value:%s' % msg_dic[chioce])
    revise_new = input('new value:').strip()
    if revise_new:
    user_info[int(chioce) + 1] = revise_new
    else:
    print('不能为空,或全是空格')
    elif chioce == 'Q':
    print('修改完成')
    break
    else:
    print('输入有误请重新输入')
    with open('persinfo','w',encoding='utf-8') as write_f:
    for i in all_user_info:
    user_str = ','.join(all_user_info[i])
    write_f.write(user_str)
    write_f.write(' ')


    #修改密码
    def chang_pwd(all_user_info,name):
    user_info = all_user_info[name]
    while True:
    print('current password:%s'%user_info[1])
    revise_new = input('new password:').strip()
    revise_new_two = input('Confirm new password:').strip()
    if not revise_new.isspace():
    if revise_new == revise_new_two:
    all_user_info[name][1] = revise_new
    print('修改成功')
    break
    else:
    print('密码输入不一致,请重新输入')
    continue
    else:
    print('不能有空格存在')
    continue
    with open('persinfo','w',encoding='utf-8') as write_f:
    for i in all_user_info:
    user_str = ','.join(all_user_info[i])
    write_f.write(user_str)
    write_f.write(' ')


    if __name__ == '__main__':
    msg = '''
    1:修改个人信息
    2:打印个人信息
    3:修改密码'''

    msg_dic = {
    '1': chang_info_to_file,
    '2': print_info,
    '3': chang_pwd
    }
    USER_DICT = pick_up_all_info()
    name = None
    # print(USER_DICT)
    counte = 3
    while counte > 0:
    name = input('username:').strip()
    pwd = input('password:').strip()
    if name in USER_DICT:
    if pwd == USER_DICT[name][1]:
    print(('Welcome %s' % name).center(50, '-'))
    break
    else:
    print('User Name or Password Force')
    else:
    print('User Name does not exist')
    counte -= 1
    else:
    exit('谢谢使用')

    while True:
    print(msg)
    chioce = input('请按编号选择要做的事情 Q退出:').upper().strip()
    if chioce.isdigit():
    msg_dic[chioce](USER_DICT, name)
    if chioce == 'Q':
    exit('谢谢使用')
    else:
    print('请正确输入')



    #根据name取出指定的,用户信息。 上面代码用不到。
    def pick_up_info(name,pwd):
        # 每次都需要打开文件进行判断,返回对应当前用户名的 所有信息
        # {'peiqi': ['peiqi', '456', '26', 'Teacher', 'IT', '13188888888']}
        with open('persinfo', 'r', encoding='utf-8') as read_f:
            user_dict = {}
            tag = False  #用于判断是否有这个用户
            for line in read_f:
                user_li = line.strip().split(',')  #对读取到的字符串 去除 按 ,分割成列表
                if name in user_li:
                    tag = True # 当文件中有这个用户时 tag=Ture
                    if pwd == user_li[1]:
                        user_dict[user_li[0]] = user_li
                        break
                    else:
                        print('账户名密码不对')
            else:
                if not tag:   #当文件中不存在输入的用户名时,就运行。
                    print('用户不存在')
            return user_dict


  • 相关阅读:
    学习:HelloWorld项目目录
    学习:java设计模式—Adapter模式
    学习:java设计模式—Decorator模式
    MyEclipse8.5/8.6不能安装ADT
    学习:Android框架
    笔记:代码整洁之道
    JVM常用启动参数
    春雷第一声初入博客
    在Winform中更改控件导致designer中代码自动移除解决方法
    C#生成灰度图片:拖动图片到picturebox显示,拖动picturebox图片到资源管理器 (Drag & drop )
  • 原文地址:https://www.cnblogs.com/chengege/p/10219837.html
Copyright © 2011-2022 走看看