1.
创建一个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
def show_info(self):
return self.x, self.y
class Rectangle(Shape):
def __init__(self, width, height, x, y):
super().__init__(x, y)
self.width = width
self.height = height
def contain(self):
if (self.x, self.y) <= (self.width/2, self.height/2) and (self.x, self.y) <= (self.height/2, self.width/2):
print("坐标在矩形中")
else:
print("坐标不在在矩形中")
class Circle(Shape):
def __init__(self, r, x, y):
super().__init__(x, y)
self.r = r
def contain(self):
if self.r >= self.x and self.r >= self.y:
print("坐标在圆形中")
else:
print("坐标不在圆形中")
r = Rectangle(1, 2, 1, 2)
r.contain()
c = Circle(5, 1, 2)
c.contain()
2.
UI = """
1.用户注册
2.用户登陆
3.退出程序
"""
print(UI)
select = input("请选择你需要的功能:(请输入1-3的数字后回车)")
if select == "1":
# 注册要求使用文件保存经过哈希处理的用户账户密码
pass
elif select == "2":
# 登陆要求读取文件中的用户的账户密码并跟用户登录输入的账号密码进行比对相同输出登陆成功否则输出登陆失败
pass
else:
# 使用sys模块进行退出
pass
代码:
import hashlib import sys UI = """ 1.用户注册 2.用户登陆 3.退出程序 """ salt_value = "la2n$@v23a^1oe8r#" while True: print(UI) select = input("请选择你需要的功能:(请输入1-3的数字后回车):") if select == "1": account = input("请输入要注册的账号:") passwd = input("请输入要注册账号的密码:") r_passwd = input("请确认要注册账号的密码:") if passwd == r_passwd: print("注册成功") a_pwd = hashlib.md5((account + passwd).encode("utf-8")) a_pwd.update(salt_value.encode("utf-8")) a_pwd_str = a_pwd.hexdigest() with open("密码本.txt", "wt", encoding="utf-8") as f: f.write(a_pwd_str + "\r\n") else: print("密码不一致,请重新注册") break elif select == "2": account1 = input("账户:") passwd1 = input("密码:") a_pwd1 = hashlib.md5((account1 + passwd1).encode("utf-8")) a_pwd1.update(salt_value.encode("utf-8")) a_pwd_str = a_pwd1.hexdigest() with open("密码本.txt", "rt", encoding="utf-8") as f: while True: save_str = f.readline().replace("\n", "") if save_str == "": print("用户账号密码不存在,请重新登录") break if a_pwd_str == save_str: print("用户登录成功") break else: # 使用sys模块进行退出 sys.exit()
或
import hashlib
import sys
UI = """
1.用户注册
2.用户登陆
3.退出程序
"""
salt_value = "ssduilfwmrkluo230897!@#"
def getHashValue(account, password):
hash_obj = hashlib.md5((account + password).encode("utf-8"))
hash_obj.update(salt_value.encode("utf-8"))
hash_str = hash_obj.hexdigest()
return hash_str
def register():
account = input("请输入账号:")
password = input("请输入密码:")
confirm_password = input("请确认密码:")
if password == confirm_password:
hash_str = getHashValue(account, password)
with open("密码本.txt", "at", encoding="utf-8") as f:
f.write(hash_str + "\r\n")
else:
print("前后密码不一致请重新注册")
def login():
account = input("请输入登陆账号:")
password = input("请输入登陆密码:")
hash_str = getHashValue(account, password)
with open("密码本.txt", "rt", encoding="utf-8") as f:
while True:
save_str = f.readline().replace("\n", "")
if save_str == "":
print("用户账号密码不存在,请重新登录")
break
if hash_str == save_str:
print("用户登录成功")
break
while True:
print(UI)
select = input("请选择你需要的功能:(请输入1-3的数字后回车)")
if select == "1":
# 注册要求使用文件保存经过哈希处理的用户账户密码
register()
elif select == "2":
# 登陆要求读取文件中的用户的账户密码并跟用户登录输入的账号密码进行比对相同输出登陆成功否则输出登陆失败
login()
else:
# 使用sys模块进行退出
sys.exit()