• day05


    1.完成下列操作

    list = [“xiaoming”,”xiaohua”,”xiaohong”]
    (1)循环遍历出列表的所有元素

    # (1)循环遍历出列表的所有元素
    list = ["xiaoming", "xiaohua", "xiaohong"]
    for value in list:
        print(value)

    运行结果:

    xiaoming
    xiaohua
    xiaohong

    (2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中

    # (2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中
    list = ["xiaoming", "xiaohua", "xiaohong"]
    list1 = ["jack", "marry", "tom"]
    list.extend(list1)
    print(list)

    或者:

    # (2)把列表list1[“jack”,”marry”,”tom”]中的每个元素逐一添加到list列表中
    list = ["xiaoming", "xiaohua", "xiaohong"]
    list1 = ["jack", "marry", "tom"]
    for value in list1:
        list.append(value)
    print(list)

     运行结果:

    ['xiaoming', 'xiaohua', 'xiaohong', 'jack', 'marry', 'tom']

    (3)查看list列表是否有“xiaohua”这个元素

    # (3)查看list列表是否有“xiaohua”这个元素
    list = ["xiaoming", "xiaohua", "xiaohong"]
    if "xiaohua" in list:
        print("存在")
    else:
        print("不存在")

    (4)查看list列表的长度

    # (4)查看list列表的长度
    list = ["xiaoming", "xiaohua", "xiaohong"]
    l = len(list)
    print(l)

    2.将下列两个列表合并,将合并后的列表升序并输出.

    list1 = [1,3,4,5,7]
    list2 = [0,66,8,9]

    # 2.将下列两个列表合并,将合并后的列表升序并输出.
    list1 = [1, 3, 4, 5, 7]
    list2 = [0, 66, 8, 9]
    ret = list1 + list2
    ret.sort(reverse=False)
    print(ret)

    或者:

    # 2.将下列两个列表合并,将合并后的列表升序并输出.
    list1 = [1, 3, 4, 5, 7]
    list2 = [0, 66, 8, 9]
    list1.extend(list2)
    list1.sort(reverse=False)
    print(list1)

    运行结果:

    [0, 1, 3, 4, 5, 7, 8, 9, 66]

    3.使用字典来存储一个人的信息(姓名、年龄[数字]、学号),

    这些信息来自键盘的输入,储存完输出至终端.

    # 3.使用字典来存储一个人的信息(姓名、年龄[数字]、学号),
    # 这些信息来自键盘的输入,储存完输出至终端.
    my_dict = {}
    my_dict["name"] = input("请输入您的姓名:")
    my_dict["age"] = int(input("请输入您的年龄:"))
    my_dict["no"] = input("请输入您的学号:")
    print(my_dict)

    4.有下列字典dict1,查找值为“itcast”对应的key并输出到终端.(结果应该是输出school)

    dict1={“school”:“itcast”,“date”:2017,”address”:“beijing”}

    # 4.有下列字典dict1,查找值为“itcast”对应的key并输出到终端.(结果应该是输出school)
    # dict1={“school”:“itcast”,“date”:2017,”address”:“beijing”}
    dict1 = {"school": "itcast", "date": 2017, "address": "beijing"}
    for i in dict1.keys():
        if dict1[i] == "itcast":
            print(i)

    5.完成字符串的逆序以及统计

    • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
    • 打印出字符串长度
    • 使用切片逆序打印出字符串
    • 统计输入的字符串中不同字符的个数,使用字典存储,并打印出来
    # 5.完成字符串的逆序以及统计
    # 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
    # 打印出字符串长度
    # 使用切片逆序打印出字符串
    # 统计输入的字符串中不同字符的个数,使用字典存储,并打印出来
    while True:
        # 获取键盘输入
        str_input = input("请任意输入一个字符串(长1-31):")
        # 测试长度:
        if len(str_input)<1 or len(str_input)>31:
            print("长度超出限制,请重新输入")
            continue
    
        # 统计字符个数的字典
        count_dict = {}
        for c in str_input:
            # 如果有,则将其原来的值+1
            if c in count_dict:
                count_dict[c] += 1
            # 如果没有,则新增加这个键值对值设为1
            else:
                 count_dict[c] = 1
        # 打印其长度并逆序打印字符串
        print("您输入的字符串%s
    "%str_input,
                "长度:%d
    "%len(str_input),
                "逆序后为:%s
    "%str_input[::-1],
                "字符统计结果:",count_dict
             )

    运行结果:

    请任意输入一个字符串(长1-31):dsfsdghbfhdfh
    您输入的字符串dsfsdghbfhdfh
     长度:13
     逆序后为:hfdhfbhgdsfsd
     字符统计结果: {'d': 3, 'f': 3, 'b': 1, 'g': 1, 'h': 3, 's': 2}
    请任意输入一个字符串(长1-31):

    6.字符翻译程序

    • 查看笔记本键盘1-9还有0号键其上方的字符,要求用户输入"1",那么输出"!",输入"2",那么输出"@",以此类推

    • 用字典完成这个任务

    • 用户如果输入的字符长度超过1或者是除数字以外其他字符,提示"未收录该字符的含义,请重新输入"​

    # 6.字符翻译程序
    # 查看笔记本键盘1-9还有0号键其上方的字符,要求用户输入"1",那么输出"!",输入"2",那么输出"@",以此类推
    # 用字典完成这个任务
    # 用户如果输入的字符长度超过1或者是除数字以外其他字符,提示"未收录该字符的含义,请重新输入"​
    # 字符对应的字典
    char_dict = {"1":"!", "2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")"}
    while True:
        cmd = input("请输入命令:")
        # 如果输入的是"0123456789"中的数字才执行
        if cmd in "0123456789" and len(cmd) == 1:
            print("键盘中%s号键对应的符号是%s"%(cmd,char_dict[cmd]))
        elif cmd == "quit":
            print("谢谢使用")
            break
        else:
            print("未识别的命令")

    运行结果:

    请输入命令:1
    键盘中1号键对应的符号是!
    请输入命令:2
    键盘中2号键对应的符号是@
    请输入命令:6
    键盘中6号键对应的符号是^
    请输入命令:

    7.用户注册登录系统V2.0

    • 设计一个程序

    • 要求用户可以实现登录、注册、注销登录等功能

    • 用户的用户名(6-20)、密码(8-20)、昵称、年龄信息保存到字典中

    • 将每个已注册的用户保存到列表中,即上将一步的字典保存到列表中

    • 维护用户的登录状态,每次只能有一个用户处于登录状态,直到选择注销登录

    • 如果不选择退出系统,该程序应当一直运行

      提示:

      • 维护用户登录:用一个变量如 loginUser去记录一个已登录用户的用户名,

      • 如果注销登录或者未登录状态,那么就把loginUser的值设为False,

      • 或者其他,每次判断loginUser就能得知当前是否有用户已经登录​

    loginUser = False
    user_list = [{"name": "系统管理员", "username": "admin", "passwd": "123456"}]
    while True:
        print("      python攻城狮系统V6.0")
        if not loginUser:
            print("1.登录")
        else:
            print("1.登出")
        print("2.注册新用户")
        print("3.查看所有已注册用户")
        print("4.管理员身份")
        print("5.查看当前登录用户")
        print("6.退出系统")
    
        cmd = input("命令:")
        # 登录登出管理
        if cmd == "1":
            # 如果是以登录状态,则询问是否注销登录
            if loginUser:
                yn = input("确认注销登录(y/n)")
                if yn == "y":
                    print("%s注销登录成功" % loginUser["name"])
                    loginUser = False
                    continue
    
            # 如果是为登录状态,则进行登录
            else:
                username = input("请输入用户名:")
                passwd = input("请输入密码:")
                login = None  # 判断输入的用户是否存在
                for user in user_list:
                    # 判断输入的用户是否存在,以及密码是否正确
                    if user["username"] == username and user["passwd"] == passwd:
                        login = user
                # 如果存在,且密码校验成功,则提示登录成功,并赋值非loginUser
                # 否则提示"用户名密码错误或用户名不存在"
                if login:
                    print("欢迎%s,登录成功" % login["name"])
                    loginUser = login
                else:
                    print("用户名密码错误或用户名不存在")
        # 注册新用户,添加新用户
        elif cmd == "2":
            name = input("请输入昵称:")  # 昵称
            username = input("请输入用户名(登录用):")  # 用户名,应判断是否存在
            for user in user_list:
                # 判断用户名是否因存在
                if user["name"] == username:
                    print("用户名%s已经存在,请重试")
                    continue  # 如果存在,则重新输入
            passwd1 = input("请输入密码:")
            passwd2 = input("请确认密码:")
            # 判断两次密码是否一致
            if passwd1 != passwd2:
                print("密码不一致,请重新输入")
                continue  # 不一致则重新输入
            # 否则,注册成功
            newuser = {"name": name, "username": username, "passwd": passwd1}
            # 添加到用户列表
            user_list.append(newuser)
            print("注册成功")
        # 查看所以已注册用户的信息,应具备管理员权限
        elif cmd == "3":
            # 判断是否已经登录
            if loginUser:
                # 判断当前用户是不是管理员
                if loginUser["username"] != "admin":
                    print("权限不足,请获取管理员权限")
                    continue
                else:
                    i = 1
                    for u in user_list:
                        print("No%d. " % i, u)
                        i += 1
            else:
                print("请以管理员身份登录并查看")
    
        # 管理管理员账户
        elif cmd == "4":
            # 要求先登录
            if not loginUser:
                print("请先登录")
                continue
            else:
                # 如果不是管理员
                if loginUser["username"] != "admin":
                    print("权限不足,请获取管理员权限")
                    continue
    
            for u in user_list:
                if u["username"] == "admin" and loginUser["username"] == "admin":
                    yn = input("需要修改管理员密码吗?(y/n)")
                    if yn == "y":
                        oldpasswd = input("请输入原密码:")
                        if oldpasswd == loginUser["passwd"]:
                            newpasswd = input("请输入新密码:")
                            loginUser["passwd"] = newpasswd
                            print("管理员密码已更新")
                        else:
                            print("密码错误,请重新输入")
                            continue
        # 查看当期那登录用户是谁
        elif cmd == "5":
            if loginUser:
                print("当前登录的用户为%s(%s)" % (loginUser["name"], loginUser["username"]))
            else:
                print("当前登录的用户为匿名用户")
        # 退出
        elif cmd == "6":
            print("退出成功,谢谢您的使用!")
            break

    8.判断有效日期

    用户可以输入"20170327"等三种格式的日期

    判断是否是有效日期,如"20170229"不是有效日期,"20171345"不是有效日期

    pingnian_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    runnian_month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    while True:
        date = input("请输入一个日期(8位),输入QUIT退出程序:")
        # 如果输入QUIT则退出
        if date == "QUIT":
            break
        # 如果长度不为8或者不是纯数字,则重新输入
        if len(date) != 8 and not date.isdigit():
            print("请输入一个八位的日期")
            continue
        else:
            year = int(date[0:4])  # 截取年份
            month = int(date[4:6])  # 截取月份
            day = int(date[6:])  # 截取日期
            isRunNian = False  # 判断是否是闰年
            if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
                isRunNian = True
            # 判断月分是否合法
            if month < 1 or month > 12:
                print("您输入的%s不是有效日期, 请重新输入" % date)
                continue
    
            if isRunNian:
                # 判断日期是否合法
                if day < 1 or day > runnian_month[month]:
                    print("您输入的%s不是有效日期, 请重新输入" % date)
                    continue  # 不合法直接重新输入
            else:
                # 判断日期是否合法
                if day < 1 or day > pingnian_month[month]:
                    print("您输入的%s不是有效日期, 请重新输入" % date)
                    continue
            print("您输入的%s是有效日期" % date)
            print("=" * 30)
  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12799372.html
Copyright © 2020-2023  润新知