python-面向对象编程设计与开发

编程范式

1、对不同类型的任务,所采取不同的解决问题的思路。

2、编程范式有两种

  1、面向过程编程

  2、面向对象编程

面向过程编程

什么是面向过程编程?

过程——解决问题的步骤

要解决一个大的问题

1、先把大问题拆分成若干小问题或子过程。

2、然后子过程再拆分成小问题或子过程

3、直到小问题可以在一个小步骤的范围内可以解决。

有什么优点和缺点?

优点:把复杂的问题流程化,编程难度低。

缺点:可扩展性差

写代码:

写一个简单的用户注册程序

# 1 写一个用户注册程序
# 面向过程编程方法:
# 1、用户输入账号密码
# 2、用户输入合法性检测
# 3、写入输入库
# 注意:
# 进阶:当需要增加邮箱注册功能要怎样改?
import json


def interactive():  # step 1
    user = input('>>').strip()
    psw = input('>>').strip()
    return {
        'name': user,
        'pwd': psw
    }


def check(user_info):  # step 2
    is_value = True
    if len(user_info['name']) == 0:
        print('用户名不能为空')
        is_value = False
    if len(user_info['pwd']) < 6:
        print('密码不能小于6位')
        is_value = False
    return {
        'is_value': is_value,
        'user_info': user_info
    }


def register(check_info):  # step 3
    if check_info['is_value']:
        with open('json.db', 'w', encoding='utf-8')as f:
            json.dump(check_info['user_info'], f)


def main():
    user_info = interactive()  # step 1
    check_info = check(user_info)  # step 2
    register(check_info)  # step 3


if __name__ == '__main__':
    main()
View Code

增加输入邮箱注册

# 1 写一个用户注册程序
# 面向过程编程方法:
# 1、用户输入账号密码
# 2、用户输入合法性检测
# 3、写入输入库
# 注意:
# 进阶:当需要增加邮箱注册功能要怎样改?
import json,re


def interactive():  # step 1
    user = input('>>').strip()
    psw = input('>>').strip()
    email=input('>>').strip()
    return {
        'name': user,
        'pwd': psw,
        'email':email
    }


def check(user_info):  # step 2
    is_value = True
    if len(user_info['name']) == 0:
        print('用户名不能为空')
        is_value = False
    if len(user_info['pwd']) < 6:
        print('密码不能小于6位')
        is_value = False
    if not re.search(r'@.*?\.com$',user_info['email']):
        print('邮箱格式错误')
        is_value=False
    return {
        'is_value': is_value,
        'user_info': user_info
    }


def register(check_info):  # step 3
    if check_info['is_value']:
        with open('json.db', 'w', encoding='utf-8')as f:
            json.dump(check_info['user_info'], f)


def main():
    user_info = interactive()  # step 1
    check_info = check(user_info)  # step 2
    register(check_info)  # step 3


if __name__ == '__main__':
    main()
View Code

应用场景?

功能一旦实现,改动很少的场景。自动部署脚本等场景。

面向对象编程

什么是面向对象编程?

 

有什么优点和缺点?

应用场景?

 

posted @ 2018-05-01 23:14  OYxing  阅读(360)  评论(0编辑  收藏  举报