zoukankan      html  css  js  c++  java
  • day04作业

    作业:
    0、分别画出下面两个列表在内存中是如何存放的
    l1=[11,22,[333,444]]
    l2=[11,22,[33,{'name':'egon','age':18}]]

     

    1、
    用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
    ------------ info of Egon -----------
    Name : Egon
    Age : 22
    Sex : male
    Job : Teacher
    ------------- end -----------------

    user_name=input("请输入姓名:")
    user_age=input("请输入年龄:")
    user_sex=input("请输入性别:")
    user_job=input("请输入职业:")
    user_info="""------------ info of {0} -----------
    Name : {0}
    Age : {1}
    Sex : {2}
    Job : {3}
    ------------- end -----------------""".format(user_name,user_age,user_sex,user_job)
    print(user_info)

    2、
    用户输入账号密码,程序分别单独判断账号与密码是否正确,正确输出True,错误输出False即可

    data={
        "name":"egon",
        "pass":"123",
    }
    
    user_name=input("请输入账号:").strip()
    user_pass=input("请输入密码:").strip()
    
    if user_name.isalpha() and user_pass.isdigit():
        if user_name==data["name"]:
            print("账号True")
        else:
            print("账号False")
        if user_pass==data["pass"]:
            print("密码True")
        else:
            print("密码False")
    else:
        print("账号或密码类型错误,账号-字母,密码-数字")

    3、让计算机提前记下egon的年龄为18岁,写一个才年龄的程序,要求用户输入所猜的年龄
    ,然后程序拿到用户输入的年龄与egon的年龄比较,输出比较结果即可

    egon_age=18
    user_inp=input("请输入所猜的年龄值:").strip()
    
    if user_inp.isdigit():
        user_inp=int(user_inp)
    
    if user_inp < egon_age:
        print("猜小了")
    elif user_inp > egon_age:
        print("猜大了")
    else:
        print("success!")

    4、程序从数据库中取出来10000条数据,打算显示到页面中,
    但一个页面最多显示30条数据,请选取合适的算数运算符,计算
    显示满30条数据的页面总共有多少个?
    最后一页显示几条数据?

    x=1000
    y=30
    print("显示满30条页数",x//y)
    print("显示满30条,最后一页数据条数",x%y)

    5、egon今年为18岁,请用增量赋值计算3年后egon老师的年龄

    egon_age=18
    for i in range(3):
        egon_age+=1
    print("三年后岁数",egon_age)

    6、将值10一次性赋值给变量名x、y、z

    x=y=z=10

    7、请将下面的值关联到它应该对应的变量名上,你懂的
    dsb = "egon"
    superman = "alex"

    dsb = "egon"
    superman = "alex"
    dsb,superman=superman,dsb
    print("superman:{}".format(superman),"dsb:{}".format(dsb))

    8、我们只需要将列表中的傻逼解压出来,一次性赋值给对应的变量名即可
    names=['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']

    names=['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']
    x,y,z,*_=names
    print(x,y,z)


    选做题:
    编写用户登录接口(学的多的同学,尝试做下述作业,这是截止到下周二学完文件处理之后的作业)
    #1、输入账号密码完成验证,验证通过后输出"登录成功"
    #2、可以登录不同的用户
    #3、同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁)
    #扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟

    目录树:

    ─day04
        │  
        │
        ├─user_info_db
        │  
        ├─用户登入.py

    代码:

    import time,os
    import fileinput
    
    flag = True
    count_error=[]
    lock_user=set({})
    while flag:
        #存锁定用户
        with open("user_info_db","r",encoding="utf-8") as f1:
            for line in f1:
                line = line.strip("
    ").split(":")
                # print(line)
                if line[2] == "1":
                    lock_user.add(line[0])
                    # print("lock_user",lock_user)
        user_inpt = input("请输入账号:").strip()
        user_pass = input("请输入密码:").strip()
        #验证登录
        if user_inpt in lock_user:
            print("用户已经锁定,请5分钟后再试。。。")
            time.sleep(300)
            lock_user.remove(user_inpt)
            with fileinput.input("user_info_db",inplace=1) as f:
                for line in f:
                    if line.startswith("lisi"):
                        line = line.strip("
    ")
                        line=line.split(":")
                        line[2]="0"
                        print("%s:%s:%s" %(line[0],line[1],line[2]))
                    else:
                        print(line,end="")
            fileinput.close()
        else:
            with open("user_info_db", "r", encoding="utf-8") as f0:
                for line in f0:
                    line = line.strip("
    ").split(":")
                    if user_inpt == line[0] and user_pass == line[1]:
                        print("登入成功。")
                        flag = False
                        break
                else:
                    print("账号或密码错误,请重新输入。")
                    count_error.append(user_inpt)
        #刷新文件
        if count_error.count(user_inpt) == 3:
            with fileinput.input("user_info_db",inplace=1) as f:
                for line in f:
                    if line.startswith(user_inpt):
                        line = line.strip("
    ")
                        line=line.split(":")
                        line[2]="1"
                        print("%s:%s:%s" %(line[0],line[1],line[2]))
                    else:
                        print(line,end="")
            fileinput.close()
  • 相关阅读:
    volatile关键字解析(转载)
    php
    FFT快速傅立叶变换
    高次不定方程BSGS算法
    BSGS-BabyStepGiantStep算法+拓展
    Java-数组-面向对象
    Java基础-方法(2)和数组
    Java基础-循环(2)和方法
    Java基础-循环结构
    Java基础-运算符
  • 原文地址:https://www.cnblogs.com/baicai37/p/12420613.html
Copyright © 2011-2022 走看看