面向过程编程:面向(对着)--》过程(流程步骤)--》编程(码代码)
IPO是啥
input(输入)--》process(过程处理)--》output(输出)
未来码代码的目的:输入一些变量,然后会通过一系列的步骤改变变量,然后得到你想要的结果。
面向过程编程
面向过程编程:一步一步(一个函数一个函数),上一个函数的输出是下一个函数的输入
编程:控制变量不断的变化
优点:代码独立性※提高了,流程清晰
缺点:一个错误,让程序直接崩掉(~ ̄(OO) ̄)ブ
debug的来源
1.定位bug,不一定是哪一行出错了
2.打印变量变化的状态,判断该流程是否有问题
面向对象
面向(对着)对象object(一个孙悟空就是一个对象,一个猪八戒也是一个对象)--》物体()编程(码代码)
优点:孙悟空的变换不会对其他对象早餐影响
缺点:异常复杂
面向对象编程:对象与对象之间交互
类和对象
类:
(模板/类别)划分了对象,通过具有相同属性特征的技能的对象属于同一类(自己控制)#1000个对象,类小于1000种
对象:
一系列特征和技能(方法)的结合体
函数的定义阶段只检测语法,不换行
类定义阶段:执行代码
# stu1 = Student()
# stu1.name = 'yutong'
# stu1.height = 160
# stu1.weight = 170
# print(stu1.name)
# print(stu1.height)
# print(stu1.weight)
#
# stu2 = Student()
# stu2.name = 'dapao'
# stu2.height = 100
# stu2.weight = 300
# print(stu2.name)
# print(stu2.weight)
# print(stu2.height)
class Student():
school = 'oldboy'
def choose_course(self):
print('正在选课')
# def init(obj, name, height, weight):
# obj.name = name
# obj.weight = weight
# obj.height = height
#
#
# stu1 = Student()
# init(stu1, 'yutong', '170', '140') # init是你用来给对象添加独有特征的函数
# print(stu1.name)
# print(stu1.weight)
# print(stu1.height)
#
# stu2 = Student()
# init(stu2, 'dapao', 100, 300)
# print(stu2.name)
# print(stu2.weight)
# print(stu2.height)
class Student():
school = 'oldboy'
def __init__(self, name, height, weight):
print(self)
self.name = name # self = stu1 --> stu1.name = 'dapao'
self.height = height
self.weight = weight
def choose_course(self):
print('正在选课')
stu1 = Student('yutong', 170, 140)
print('stu1:',stu1)
print('stu1.name:',stu1.name)
stu2 = Student('dapao', 100, 300)
print('stu2.name:',stu2.name)
print('stu2:',stu2)
自动排序系统
def sort(lis):
print(1, lis)
for i in range(len(lis)): # 3
for j in range(len(lis)): # 3 # 2
if lis[i] < lis[j]:
lis[i], lis[j] = lis[j], lis[i]
print(2, lis)
lis = [3, 2, 1]
sort(lis)
一命二运三风水四积功德五读书六名七相八敬神九交贵人十养生十一结婚()
可能等下还有补充