面向过程
复杂的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)
面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式
优点:复杂的问题流程化,进而简单化
缺点:可扩展性差
import json
import re
def interactive(): #与用户交互
name=input('>>: ').strip()
pwd=input('>>: ').strip()
email=input('>> ').strip()
return { #把结果返回
'name':name,
'pwd':pwd,
'email':email
}
def check(user_info): #检测 user_info 接收上一步返回的结果
is_valid=True #默认是有效 True的
if len(user_info['name']) == 0:
print('用户名不能为空')
is_valid=False #现在这个数据是无效的
if len(user_info['pwd']) < 6:
print('密码不能少于6位')
is_valid=False
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): #注册
if check_info['is_valid']:
with open('db.json','w',encoding='utf-8') as f:
json.dump(check_info['user_info'],f)
def main():
user_info=interactive()
check_info=check(user_info)
register(check_info)
if __name__ == '__main__':
main()
如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便了。
面向对象
面向对象:核心就是对象二字,对象就是特征与技能的结合体
优点:可扩展性强
缺点:编程复杂度高
应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用
类就是一系列对象相似的特征与技能的结合体
强调:站在不同的角度,得到的分类是不一样的
在现实世界中:一定先有对象,后有类
在程序中:一定得先定义类,后调用类来产生对象
站在路飞学院的角度,大家都是学生
在现实世界中: 对象1:王二丫 特征: 学校='luffycity' 名字='王二丫' 性别='女' 年龄=18 技能: 学习 吃饭 睡觉 对象2:李三炮 特征: 学校='luffycity' 名字='李三炮' 性别='男' 年龄=38 技能: 学习 吃饭 睡觉 对象3:张铁蛋 特征: 学校='luffycity' 名字='张铁蛋' 性别='男' 年龄=48 技能: 学习 吃饭 睡觉 总结现实中路飞学院的学生类: 相似的特征 学校='luffycity' 相似的技能 学习 吃饭 睡觉