面向过程:
针对过程(一系列流程/步骤)的编程方式思想
#IPO(流程):
码代码的目的:针对一些输入的变量,的步骤改变变量进行一系列--》得到想要的结果
面向过程编程:一个函数以函数的执行,上一个函数输出是下一个函数的输入
优点:代码的独立性高,流程清晰
缺点:出错一处,整个程序崩溃
编程:控制变量在不断地变化
----计算机永远不出错-》出现错误--代码的逻辑出错
查错:
不断打印变量
对象:一系列特征(属性)和技能(方法)结合体
面向对象:
对象和对象的交互
优点:单个对象变化不会影响全局或单个对象
缺点:异常复杂
类:划分对象,具有相同的属性和技能的对象属于同一类
特点:
现实生活是先有对象才有类
python中先有类才有对象
----(python中我们充当造物主的角色)
对象的数量大于类的数量
#定义类
---**---注释
class 类名(用驼峰体):
school = 'oldboy' # 定义变量(给类添加属性)
def choose_course(self): # 定义在类内部的函数一般称为方法(给类增加技能)
pass
#--
class Student:
school = 'oldboy'
def __init__(self, name, height, weight, age):
self.name = name
self.height = height
self.weight = weight
self.age = age
def choose_course(self):
print(f'{self.name}正在选课')
stu_dict = Student.__dict__
#获取类的所有属性和方法--用字典的形式
print(stu_dict)
print(stu_dict['school'])
--注释:
--》函数定义阶段:只检测语法是否出错,并不执行
--》在类定义阶段:执行代码
#定义对象(实例化一个对象)
stum1=Studdent()
--self-->实例化的对象
stum1.school
#对象在调用内的方法时,不朽添加参数,python会自动添加实例化对象传给self
#为对象添加特征
--init()->给对象添加对象独有特征的函数
class Student():
school = 'oldboy'
def __init__(self, name, height, weight):
print(self)
self.name = name # self = stu1 --> stu1.name = '小王'
self.height = height
self.weight = weight
def choose_course(self):
print('正在选课')
--注释:
传入的参数数量必须要和函数的形参数量一样
#类和数据类型
lt=list[]/dict{}/int()
--都是一个个对象
python中一切皆对象,一切皆数据类型
作为对象(特点):
1. 引用 x = 10 ; y = x
2. 作为容器类元素 lis = [x,func,Student]
3. 作为函数参数 def func(x, func, Student)
4. 作为函数返回值 return x,func,Student
#冒泡算法:
def sort(lis):
print(1, lis)
for i in range(len(lis)):
for j in range(len(lis)):
if lis[i] < lis[j]:
lis[i], lis[j] = lis[j], lis[i]#-->(i,j=j,i)
print(2, lis)
lis = [3, 2, 1]
sort(lis)
'''
# 最the most simply的算法()
[3, 2, 1]
i = 3 j= 3
i = 3 j =2
i = 3 j= 1
i = 2 j= 3 [3, 2, 1]->[2,3,1]
i = 2 j=2
i = 2 j= 1
i = 1 j= 3 [2,3,1] ->[2,1,3]
i = 1 j= 2 [2,1,3]->[1,2,3]
i = 1 j = 1
'''