Python练习5(类)

创建登录页面跟创建一个Shape类(point)有两个属性x,y表示中心坐标创建一个Rectangle类继承Shape 新增宽高属性创建一个Circle类继承Shape 新增半径属性矩形和圆形。

一、登录页面

1.用户用户
2.用户登陆
3.退出程序
"""
select = input("请选择你需要的功能:(请输入1-3的数字后回车)")
if select == "1":
    # 注册要求使用文件保存经过哈希处理的用户账户密码
    pass
elif select == "2":
    # 登陆要求读取文件中的用户的账户密码并跟用户登录输入的账号密码进行比对相同输出登陆成功否则输出登陆失败
    pass
else:
    # 使用sys模块进行退出
    pass”

 

注册
 def register():    print('--------正在注册--------')
     username = input('请输入用户名(不能包含逗号):')
     password = input('请输入密码(不能包含逗号):')
     md5 = hashlib.md5((username + password).encode())
    account_passwd = md5.hexdigest()
     print(account_passwd)
     if ',' in username or ',' in password:
         return '注册失败,账号或密码不合法'
     else:
        if os.path.exists("users.txt"):  # 判断文件是否存在
             print("文件存在")
             f2 = open('users.txt', 'rt', encoding='utf-8')
            result = f2.readlines()
             for i in result:
                 if username == i.strip().split(',')[0]:
                     return '注册失败!该账号已经存在!!!'
                 else:
                     f3 = open('users.txt', mode='at', encoding='utf-8')
                     f3.write('\n' + username + ',' + account_passwd)
                    f3.close()
                     return '注册成功!'
         else:
             print("文件不存在")
             file = open('users.text', mode='w')  # 创建文件储存信息
             file.close()  # 关闭文件


 # 登录
 def login():
    print('--------正在登录--------')
    username = input('请输入用户名:')
     password = input('请输入密码:')
    md5 = hashlib.md5((username + password).encode())
     account_passwd = md5.hexdigest()
     print(account_passwd)
     f2 = open('users.txt', 'r', encoding='utf-8')
     result = f2.readlines()
     for i in result:
        index = i.strip().split(',')
        if username == index[0] and account_passwd == index[1]:
            return '登录成功!'
         elif username == index[0] and account_passwd != index[1]:
             return '登录失败!密码错误'     return '登录失败!该账号没有注册!'


 def choice():
     # 选择2---注册
     num = int(input('请输入(1~3)1.登录 2.注册 3.退出:'))

     if num == 2:
         print(register())

     # 选择1登录
     elif num == 1:
         print(login())
     else:
         sys.exit()

choice()

 二、类
创建一个Shape类(point)有两个属性x,y表示中心坐标
创建一个Rectangle类继承Shape 新增宽高属性
创建一个Circle类继承Shape 新增半径属性
矩形和圆形都有一个方法叫做def contain(x,y) 用于判断填入的坐标是否在 矩形和圆形中

class Shape:
    def __init__(self, x, y):
        self.__x = x
        self.__y = y

        @property
        def X(self):
            return str(self.__x)

        @X.setter
        def Age(self):
            self.__age = x

        @property
        def Y(self):
            return str(self.__y)

        @Y.setter
        def Age(self):
            self.__age = y


class Rectangle(Shape):
    def __init__(self, w, h, x, y):
        super().__init__(x, y)
        self.x = x
        self.y = y
        self.w = w
        self.h = h

    def contain(self, x, y):  # 判断坐标是否在矩形中
        if (self.x - x) ** 2 > self.w ** 2 and (self.y - y) > self.h ** 2:
            raise Exception("不在里面")
        else:
            print(f"点{x,y}在里面")


class Cirle(Shape):
    def __init__(self, r, x, y):
        super().__init__(x, y)
        self.r = r
        self.x = x
        self.y = y

    def contain(self, x, y):  # 判断坐标是否在圆形中
        if (self.x - x) ** 2 + (self.y - y) ** 2 > self.r ** 2:
            raise Exception("不在里面")
        else:
            print(f"点{x,y}在里面")

仅仅是作业,仅供参考
 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值