• 【python基础语法】第9天作业练习题


    """
    第一题
    1、写出异常处理语句中try作用是什么,except,else,finally下面的代码分别在什么时候会执行?(简答题)
    第二题
    2、改善上节课的注册程序,打开文件的读取数据的时候,如果文件不存在会报错,请通过try-except来捕获这个错误,然后进行处理
    第三题
    3、优化之前作业的石头剪刀布游戏,用户输入时,如果输入非数字会引发异常,请通过异常捕获来处理这个问题。
    """
    """
    # 第一题
    1、try的作用:
        try可以用来检测代码是否出现异常(把有可能出现异常的代码放在try里面)
    2、except下面的代码什么时候执行:
        try中的代码出现异常,被except成功的捕获之后执行,会执行except中的代码
    3、else下面的代码什么时候执行:
        try中的代码没有出现异常,执行else中的代码
    4、finally下面的代码什么时候执行
        不管try中的代码是否发生异常,finally中的代码都会执行
    """
    import random
    # 第二题
    def work2():
        try:
            # 读取文件中注册用户的数据
            with open("users.txt", "r", encoding="utf8") as f:
                # 读取文件内容
                data = f.read()
                # 识别字符串中的列表
                users = eval(data)
        # 错误的类型不用记忆,将报错的类型FileNotFoundError复制上去
        except FileNotFoundError:
            # 文件不存在将users设置为一个空列表
            users = []
    
        # 注册功能代码(上次作业写的,不需要改动))
        while True:
            # 注册功能
            username = input("请输入用户名:")  # 输入账号
            for user in users:  # 遍历所有账号,判断账号是否存在
                if username == user["user"]:
                    print("该客户已经被注册过")  # 账号已存在,请重新输入
                    break
            else:
                password1 = input("请输入密码:")  # 输入密码
                password2 = input("请再次确认密码:")  # 再次输入密码
                if password1 != password2:
                    print("两次输入密码不一致,请重新输入!")  # 账号和密码不一致,请重新输入
                    continue
                # 账号不存在,密码不重复,则添加到账户列表中
                users.append({"user": username, "password": password2})
                # user["username"] = username
                # user["password"] = password1
                print("注册成功!")
                print(users)
                break
        # 程序结束后,将所有用户的数据写入到文件
        with open("users.txt", "w", encoding="utf8") as f:
            # 将列表转换为字符串
            content = str(users)
            # 写入文件
            f.write(content)
    
    work2()
    
    # 第三题
    while True:
        # 用户输入数字
        try:
            user = int(input("用户输入要出的拳 :石头(1)/剪刀(2)/布(3)/退出(4)"))
        # 检测用户输入不是数字类型的数据报错的情况
        except ValueError:
            print("您的出拳有误,请按规矩出拳")
            # continue
        # 没有报错的情况
        else:
            # 电脑随机生成数字
            computer = random.randint(1,3)
            print(computer)
            if user > 0 and user < 4:
                if user - computer == -1 or user - computer == 2:
                    print("用户胜!")
                elif user - computer == -2 or user - computer ==1:
                    print("电脑胜!")
                else:
                    print("平局!")
            elif user == 4:
                print("结束游戏!")
                break
            else:
                # 用来检测不是1-4的数字范围
                print("您的出拳有误,请按规矩出拳!")
  • 相关阅读:
    新年新方向-斩获新职位
    专利之家:让灵感冒冒泡
    转帖:专利之家
    WPF:Localization 基础
    WPF教程.002
    有关XXX产品研发管理约定
    转帖:曲线路标北京前门上岗
    超出想象-超级终端显示器
    小e的每日一画 之 小男孩在太阳下敬礼 20080102
    小e的每日一画 之 飞毯旅行记 20071231
  • 原文地址:https://www.cnblogs.com/python-test001/p/12378482.html
Copyright © 2020-2023  润新知