• 第2周需求



    """
    1.根据用户输入内容打印其权限
    '''
    jason --> 超级管理员
    tom --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    '''
    # 1.获取用户名
    username = input('username>>>:').strip()
    # 2.判断用户身份
    if username == 'jason':
    print('超级管理员')
    elif username == 'tom':
    print('普通管理员')
    # 3.有两种方式
    # elif username == 'jack' or username == 'rain':
    elif username in ['jack', 'rain']:
    print('业务主管')
    else:
    print('普通用户')
    2.编写用户登录程序
    要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
    如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
    black_user_list = ['jason', 'kevin', 'tony']
    # 1.获取用户名
    username = input("username>>>:").strip()
    # 2.判断是否是黑名单用户
    if username in black_user_list:
    print('不好意思 您已经被拉黑了')
    else:
    password = input('password>>>:').strip()
    if username == 'oscar' and password == '123':
    print('登录成功')
    else:
    print('用户名或密码错误')
    3.编写一个用户登录程序
    用户如果登录失败 则只能尝试三次
    用户如果登录成功 则直接结束程序
    # 提前定义一个记录用户尝试次数的计数器
    count = 1
    while count < 4:
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    if username == 'jason' and password == '123':
    print('登录成功')
    break
    else:
    print('用户名或密码错误')
    count += 1
    4.编写一个用户登录程序
    用户如果登录失败 可以无限制尝试
    用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
    eg: 用户输入cmd指令 则程序打印'正在执行您的指令:cmd'
    给用户提供一个退出命令 用户一旦输入则退出整个程序
    eg: 用户输入q指令 则程序先打印该指令再结束
    flag = True
    while flag:
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    if username == 'jason' and password == '123':
    print('登录成功')
    while flag:
    cmd = input('请输入您的指令>>>:').strip()
    if cmd == 'q':
    flag = False
    print(f'正在执行您的命令:{cmd}')
    else:
    print('用户名或密码错误')
    5.编写猜年龄的游戏
    代码提前定义出真实的年龄 之后获取用户猜测的年龄判断
    用户有三次猜测的机会 如果用完则提示用户是否继续尝试
    用户输入y则继续给三次机会 如果用户输入q则直接结束程序
    real_age = 18
    count = 1
    while True:
    # 判断当前用户是第几次猜测
    if count == 4:
    is_guess = input('您已经猜测了三次 是否继续(y/n)>>>:').strip()
    if is_guess == 'y':
    count = 1 # 让计数器重新置为1
    else:
    print('欢迎下次继续猜')
    break
    guess_age = input('请输入猜测的年龄>>>:').strip()
    if not guess_age.isdigit():
    print('年龄必须是纯数字')
    continue
    guess_age = int(guess_age)
    if guess_age > real_age:
    print('猜大了')
    count += 1
    elif guess_age < real_age:
    print('猜小了')
    count += 1
    else:
    print('恭喜你猜对了!!!')
    break
    6.计算1-100所有的数之和
    count = 0
    for i in range(1, 101):
    count += i
    print(count)
    7.编写代码打印出下列图形(ps:for循环嵌套)
    *****
    *****
    *****
    *****
    for i in range(4): # 外层循环一次
    for j in range(5): # 内层循环五次
    print('*', end='') # 每次打印不换行
    print() # 自带换行
    8.基于字符串充当数据库完成用户登录(基础练习)
    data_source = 'jason|123' # 一个用户数据
    获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
    data_source = 'jason|123'
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    # real_name, real_pwd = ['jason', '123']
    real_name, real_pwd = data_source.split('|') # 切割 解压赋值
    if username == real_name and password == real_pwd:
    print('登录成功')
    else:
    print('用户名或密码错误')
    9.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
    data_source = ['jason|123', 'kevin|321','oscar|222']
    data_source = ['jason|123', 'kevin|321', 'oscar|222']
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    for data in data_source: # 'jason|123' 'kevin|321'
    real_name, real_pwd = data.split('|')
    if real_name == username and real_pwd == password:
    print('登录成功')
    break
    else:
    print('用户名或密码错误')
    10.2.编写员工管理系统
    1.添加员工信息
    2.修改员工薪资
    3.查看指定员工
    4.查看所有员工
    5.删除员工数据
    提示:用户数据有编号、姓名、年龄、岗位、薪资
    数据格式采用字典:思考如何精准定位具体数据>>>:用户编号的作用

    11.去重下列列表并保留数据值原来的顺序
    eg: [1,2,3,2,1] 去重之后 [1,2,3]
    l1 = [2,3,2,1,2,3,2,3,4,3,4,3,2,3,5,6,5]
    l1 = [2, 3, 2, 1, 2, 3, 2, 3, 4, 3, 4, 3, 2, 3, 5, 6, 5]
    new_list = []
    for i in l1:
    if i not in new_list:
    new_list.append(i)
    print(new_list)
    12.统计列表中每个数据值出现的次数并组织成字典展示
    eg: l1 = ['jason','jason','kevin','oscar']
    结果:{'jason':2,'kevin':1,'oscar':1}
    真实数据
    l1 = ['jason','jason','kevin','oscar','kevin','tony','kevin']
    l1 = ['jason', 'jason', 'kevin', 'oscar', 'kevin', 'tony', 'kevin']
    new_dict = {}
    for i in l1: # 'jason' 'jason' 'kevin'
    if i not in new_dict:
    new_dict[i] = 1 # {'jason':1}
    else:
    new_dict[i] += 1 # {'jason':1+1}

    print(new_dict) # {'jason': 2, 'kevin': 3, 'oscar': 1, 'tony': 1}
    13.编写简易版本的拷贝工具
    自己输入想要拷贝的数据路径 自己输入拷贝到哪个地方的目标路径
    任何类型数据皆可拷贝
    ps:个别电脑C盘文件由于权限问题可能无法拷贝 换其他盘尝试即可
    source_path = input('请输入想要拷贝的文件路径>>>:').strip()
    target_path = input('请输入目的地址路径>>>:').strip()
    with open(source_path,'rb') as read_f,open(target_path,'wb') as write_f:
    for line in read_f:
    write_f.write(line)
    14.利用文件充当数据库编写用户登录、注册功能
    文件名称:userinfo.txt
    基础要求:
    用户注册功能>>>:文件内添加用户数据(用户名、密码等)
    用户登录功能>>>:读取文件内用户数据做校验
    ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
    while True:
    print("""
    # 1.
    # 注册功能
    # 2.
    # 登录功能
    """)
    func_id = input('请输入想要执行的功能编号>>>:').strip()
    if func_id == '1':
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    user_data = f'{username}|{password}'
    with open(r'userinfo.txt','w',encoding='utf8') as f:
    f.write(user_data)
    print(f'{username}注册成功')
    elif func_id == '2':
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    with open(r'userinfo.txt','r',encoding='utf8') as f:
    file_data = f.read() # 'jason|123'
    real_name, real_pwd = file_data.split('|')
    if username == real_name and password == real_pwd:
    print('登录成功')
    break
    else:
    print('用户名或密码错误')
    拔高要求:
    用户可以连续注册
    用户可以多账号切换登录(多用户) 文件内有多个用户信息
    ps:思考多用户数据情况下如何组织文件内数据结构较为简单
    提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件
    """
    while True:
    print("""
    1.注册功能
    2.登录功能
    """)
    func_id = input('请输入想要执行的功能编号>>>:').strip()
    if func_id == '1':
    username = input('username>>>:').strip()
    # 先判断当前用户名是否已存在
    with open(r'userinfo.txt', 'r', encoding='utf8') as f:
    for line in f:
    if username == line.split('|')[0]:
    print('用户名已存在')
    break
    else:
    password = input('password>>>:').strip()
    user_data = f'{username}|{password}\n' # 一个用户一行 所以需要换行符
    with open(r'userinfo.txt', 'a', encoding='utf8') as f:
    f.write(user_data)
    print(f'{username}注册成功')
    elif func_id == '2':
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    with open(r'userinfo.txt', 'r', encoding='utf8') as f:
    for line in f:
    real_name, real_pwd = line.split('|') # ['jason', '123\n']
    if real_name == username and password == real_pwd.strip('\n'):
    print('登录成功')
    break
    else:
    print('用户名或密码错误')
  • 相关阅读:
    美剧基本演绎法福尔莫斯的一句话
    HowToDoInJava 其它教程 1 &#183; 翻译完成
    我们关于版权保护的意见与建议
    HowToDoInJava Spring 教程·翻译完成
    【转】21世纪律师办公自动化的一个调查
    iBooker AI+财务提升星球 2020.4 热门讨论
    布客·ApacheCN 翻译校对活动进度公告 2020.5
    数据可视化的基础知识·翻译完成
    Java 高效编程(Effective Java)中文第三版(补档)
    布客&#183;ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.4
  • 原文地址:https://www.cnblogs.com/A121/p/16630979.html
Copyright © 2020-2023  润新知