zoukankan      html  css  js  c++  java
  • 路飞学城Python-Day17

    【1.编程范式】
    1.面向过程编程
    2.面向对象编程

    【2.面向过程编程】
    面向过程:核心就是过程  
    什么是过程?
    过程指的是解决问题的步骤,先做什么,在作什么,面向过程就像是设计一个流水线,是一种机械式的思维方式,这种思维方式的基本思想就是把一个大的问题不断细化为各种子问题,然后不断细化,知道细化到能够在很小的范围里编写,然后逐个击破
    面向过程的优缺点?
    优点:复杂的问题分解为一步步小问题,复杂问题流程化进而简单化
    缺点: 对于写程序,需要扩展代码,对于面向过程就需要不断修改,可扩展性不强,修改某一个功能,其他的功能都要去查,牵一发而动全身
    设计一个用户登录界面
    def login():
    '''
    用户输入账号密码
    :return:
    '''
    username = input('>>>').strip()
    pwd = input('>>>').strip()
    return {
    "username": username,
    "pwd": pwd
    }
     
    def check(user_info):
    '''
    检查用户输入合法性
    :return:
    '''
    is_valid = True
    if len(user_info['username']) == 0:
    print('用户名不能为空')
    is_valid = False
    if len(user_info['pwd'])<6:
    print('密码不能少于6位')
    is_valid = False
    return {
    'is_valid': is_valid,
    'user_info': user_info
    }
     
    def register(check_info):
    '''
    完成注册
    :return:
    '''
    if check_info['is_valid']:
    import json
    with open('db.json','w',encoding='utf-8') as f:
    json.dump(check_info['user_info'],f)
     
    def main():
    '''
    主函数代码块
    :return:
    '''
    user_info = login()
    check_info = check(user_info)
    register(check_info)
     
    if __name__ == '__main__':
    main()
    用户登录界面增加需求
    def login():#增加需求需要逐行检查
    '''
    用户输入账号密码
    :return:
    '''
    username = input('>>>').strip()
    pwd = input('>>>').strip()
    email = input('>>>').strip()
    return {
    "username": username,
    "pwd": pwd,
    "email": email,
    }
     
    def check(user_info):
    '''
    检查用户输入合法性
    :return:
    '''
    is_valid = True
    if len(user_info['username']) == 0:
    print('用户名不能为空')
    is_valid = False
    if len(user_info['pwd'])<6:
    print('密码不能少于6位')
    is_valid = False
    import re
    if not re.search(r'@.*?.com$',user_info['email']):
    print('邮箱格式不合法')
    is_valid =False
    return {
    'is_valid': is_valid,
    'user_info': user_info
    }
     
    def register(check_info):
    '''
    完成注册
    :return:
    '''
    if check_info['is_valid']:
    import json
    with open('db.json','w',encoding='utf-8') as f:
    json.dump(check_info['user_info'],f)
     
    def main():
    '''
    主函数代码块
    :return:
    '''
    user_info = login()
    check_info = check(user_info)
    register(check_info)
     
    if __name__ == '__main__':
    main()
     

    【3.面向对象编程】
    面向对象:核心就是对象,理解对象必须站在上帝的视角,任何事物都视为对象
    什么是对象?
    对象就是特征与技能的组合
    总结:面向过程就是设计流水线,面向对象就是设计角色和角色的特征和技能
    面向对象的优点和缺点
    优点:可扩展性强,面向对象只能解决扩展性,但是软件开发里可扩展性只是一部分,掌握面向对象是开发的一部分
    缺点:简单的问题会变的复杂化,编程的复杂度高,容易出现设计的问题
    应用场景:用户需求经常变化的场景,互联网应用、游戏、企业内部的应用(办公系统)等经常发生需求变更的场景
     

    【4.定义类与实例化对象】

    【5.如何使用类】

    【6.如何使用对象】

    【7.属性查找与绑定方法】

    【8.一切皆对象】

    【9.面向对象可扩展性总结】

    【10.小练习1】

    【11.小练习2】

    【12.继承与重用性】

    【13.派生】

    【14.继承的实现原理】

    【15.在子类中重用父类的方法和属性】

    【16.组合】

    【17.抽象类与归一化】

    【18.多态与多态性】

    【19.封装之如何隐藏属性】

    【20.封装的意义】

    【21.封装与可扩展性】

    【22.property的使用】

    【23.绑定方法与非绑定方法介绍】

    【24.绑定方法与非绑定方法】

    【25.反射】

    【26.内置方法介绍】

    【27.元类介绍】

    【28.自定义元类控制类的创建】

    【29.自定义元类控制类的实例化行为】

    【30.自定义元类控制类的实例化行为的应用】

    【31.面向对象的软件开发与作业介绍】

    【32.什么是异常处理】

    【32.try...except...详细方法】

     
    Win a contest, win a challenge
  • 相关阅读:
    在Spring Boot中使用Swagger2
    初识设计模式之简单工厂模式、工厂方法模式、抽象工厂模式
    基于百度AI接口的微信小程序-数字识别
    微信小程序实现自定义遮罩
    微信小程序之视图容器movable-view实现拖拽功能
    微信小程序之map组件初体验
    基于百度AI接口的微信小程序-人脸搜索
    基于百度AI接口的微信小程序-图像搜索
    微信小程序实现上拉加载(分页加载)
    微信小程序实现下拉刷新
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/9312951.html
Copyright © 2011-2022 走看看