请问,新手应该如何写出简洁的代码!

请问,新手应该如何写出简洁的代码!

我该如何优化我的代码

  • 我目前正在学习Python ,今天学习了装饰器,尝试的写了一下三次验证登录以及登出后重登,我感觉我的代码还很差,请问各位大牛我的代码有哪些方面可以优化。小弟表示感激不尽
# 记录登录状态

login_status = {"user_name": None,

"status": False}

def decorator(func):

"""装饰器 验证是否登录"""

def inner(*args, **kwargs):

if login():

res = func(*args, **kwargs)

return res

return inner

def get_user_info():

"""用户名密码转换字典"""

with open("./my_file.txt", "r+") as file:

user_pass = file.read().strip()

return {i.split("|")[0]: i.split("|")[1] for i in user_pass.split()}

def registered():

"""注册"""

user_name_password = get_user_info()

while 1:

regis_name = input("请输入需要注册的用户名 >>> ").strip()

if regis_name in user_name_password:

print("该用户名已存在,请重新输入")

else:

break

regis_pswod = input("请输入您的密码>>> ").strip()

with open("./my_file.txt", "a") as file:

file.write(f'{regis_name}|{regis_pswod}\n')

def login():

"""登录功能"""

if login_status["status"] is True:

return True

name_password_dict = get_user_info()

i = 2

while 1:

if i < 0:

break

login_name = input("请输入用户名 >>> ").strip()

login_pswod = input("请输入密码 >>> ").strip()

if login_name in name_password_dict and login_pswod == name_password_dict[login_name]:

print("登录成功")

login_status["user_name"] = login_name

login_status["status"] = True

return True

if i >= 1:

print(f"登录失败 还剩{i}次机会")

else:

print("连续错误三次,退出登录")

i -= 1

return False

@decorator

def article():

print("测试:文章功能")

@decorator

def diary():

print("测试:日记")

return "Hello"

@decorator

def draft(item):

print("测试:草稿")

print(f"{item}")

if __name__ == '__main__':

print("登录 【1】\n注册 【2】\n退出 【Q】")

while 1:

try:

first_work = input("请输入您的操作:").strip()

if first_work not in ["1", "2", "Q", "q"]:

raise Exception

elif first_work == "1":

login()

break

elif first_work == "2":

registered()

break

else:

break

except Exception:

print("输入有误")

while 1:

print(f"{'=' * 50}\n文章 【1】\n日记 【2】\n草稿 【3】\n注销 【0】\n退出 【Q】\n{'='*50}")

try:

work = input("请输入您的操作:").strip()

if work not in ["1", "2", "3", "0", "Q", "q"]:

raise Exception

elif work == "1":

article()

elif work == "2":

diary()

elif work == "3":

draft("我是草稿")

elif work == "0":

print(f'退出 {login_status["user_name"]} 账号')

login_status["user_name"] = None

login_status["status"] = False

else:

break

except Exception:

print("输入有误")


回答:

推荐个书:《代碼大全》(Code Complete),亦译作《軟體建構之道》,是一本由麦克康奈尔(Steve McConnell)所寫而由微軟所發行關於軟體開發的書。

以上是 请问,新手应该如何写出简洁的代码! 的全部内容, 来源链接: utcz.com/a/161378.html

回到顶部