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()
增加输入邮箱注册
# 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()
应用场景?
功能一旦实现,改动很少的场景。自动部署脚本等场景。
面向对象编程
什么是面向对象编程?
有什么优点和缺点?
应用场景?