创建登录页面跟创建一个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}在里面")
仅仅是作业,仅供参考