修改前后代码总结与反思

修改前后代码总结与反思

旧代码

  • #最主要的问题是如何进行函数以及代码的块的封装独立
    #如果不进行封装的时候,变量名的使用重复性的问题
    f = open('resgister','a',encoding='utf-8')
    print('***********用户注册***********')
    while True:
        name = input('请输入用户名(N退出):')
        if name.upper() == "N":
            break
        password = input('请输入密码:')
        from datetime import datetime
        resgister_time=datetime.now()
        str_resgister_time = resgister_time.strftime('%Y-%m-%d %H:%M:%S')
        f.write(str({name:password}) + "\n")
        print("注册时间为:" + str_resgister_time)
    
    #***********************用户登录***********************
    print('************用户登录******************')
    dict_name = []
    for li in open('resgister','r'): #每一行进行文件的读取
        dict_name.append(eval(li))
    n = 0
    h = True
    while h:
        load_name = input('请输入登录名:')
        load_password = input('请输入登录密码:')
        n = n + 1
        for i in dict_name:
            if {load_name: load_password} == i:
                h = False
                print("登录成功")
                break
        if n >= 3:
            break
    if h == True:
        print('账户已被冻结')
    
    

总结

缺点:

  • 修改前代码没有采用函数进行分块
    • 缺点:
    • 1.界限不明显
    • 2.变量的命名容易重复
  • 特殊符号( | ) strip的以及%s搭配 没有利用,反而采用的更为复杂的字典的键值对的方式,这应用范围较窄
  • 功能出现了阉割

优点:

  • eval 对于返回原的数据类型是极好的
原文地址:https://www.cnblogs.com/yangzilaing/p/13589110.html