编程范式
1、对不同类型的任务,所采取不同的解决问题的思路。
2、编程范式有两种
1、面向过程编程
2、面向对象编程
面向过程编程
什么是面向过程编程?
过程——解决问题的步骤
要解决一个大的问题
1、先把大问题拆分成若干小问题或子过程。
2、然后子过程再拆分成小问题或子过程
3、直到小问题可以在一个小步骤的范围内可以解决。
有什么优点和缺点?
优点:把复杂的问题流程化,编程难度低。
缺点:可扩展性差
写代码:
写一个简单的用户注册程序
# 1 写一个用户注册程序 # 面向过程编程方法: # 1、用户输入账号密码 # 2、用户输入合法性检测 # 3、写入输入库 # 注意: # 进阶:当需要增加邮箱注册功能要怎样改? import jsondef interactive(): # step 1user = input('>>').strip()psw = input('>>').strip()return {'name': user,'pwd': psw}def check(user_info): # step 2is_value = Trueif len(user_info['name']) == 0:print('用户名不能为空')is_value = Falseif len(user_info['pwd']) < 6:print('密码不能小于6位')is_value = Falsereturn {'is_value': is_value,'user_info': user_info}def register(check_info): # step 3if 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 1check_info = check(user_info) # step 2register(check_info) # step 3if __name__ == '__main__':main()
增加输入邮箱注册
# 1 写一个用户注册程序 # 面向过程编程方法: # 1、用户输入账号密码 # 2、用户输入合法性检测 # 3、写入输入库 # 注意: # 进阶:当需要增加邮箱注册功能要怎样改? import json,redef interactive(): # step 1user = input('>>').strip()psw = input('>>').strip()email=input('>>').strip()return {'name': user,'pwd': psw,'email':email}def check(user_info): # step 2is_value = Trueif len(user_info['name']) == 0:print('用户名不能为空')is_value = Falseif len(user_info['pwd']) < 6:print('密码不能小于6位')is_value = Falseif not re.search(r'@.*?\.com$',user_info['email']):print('邮箱格式错误')is_value=Falsereturn {'is_value': is_value,'user_info': user_info}def register(check_info): # step 3if 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 1check_info = check(user_info) # step 2register(check_info) # step 3if __name__ == '__main__':main()
应用场景?
功能一旦实现,改动很少的场景。自动部署脚本等场景。
面向对象编程
什么是面向对象编程?
有什么优点和缺点?
应用场景?