day10

面向程序设计

面向过程 编程:面向(对着)--》过程(流程步骤)--》编程(码代码)

IPO

input(输入)--》process(过程处理)--》output(输出)

面向过程编程

一步一步(一个一个函数),上一个函数 输出是向下一个函数的输入

编程:控制变量不断的变化

优点:代码独立性提高了,流程清晰

缺点:一个错误就会让程序直接崩掉

debug的来源

1.定位bug,不一定是哪一行出错

2.打印变量变化的状态,盘点流程是否有问题

面向对象编程

面向(对着)object--》物体编程(码代码)

优点:对象的变化不会对其他对象造成影响

缺点:异常复杂

类和对象

类:

模板和类别划分了对象,通过具有相同属性特征的技能的对象属于同一类 #1000个对象,类小于1000种 # 现实世界中先有对象才会有类,但是python中现有类后有对象

对象:

一些列特征和技能(方法)的结合体

函数的定义阶段只检测语法,不换行

# 定义类
class Student:
    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}正在选课')


# 定义对象
yutong = Student('雨桐', 150, 170, 16)
print(yutong.name)
print(yutong.height)
print(yutong.weight)
print(yutong.age)
yutong.choose_course()

dapao = Student('大炮', 100, 300, 18)
print(dapao.name)
print(dapao.height)
print(dapao.weight)
print(dapao.age)

dapao1 = Student('大炮', 100, 300, 18)
print(dapao1.name)
print(dapao1.height)
print(dapao1.weight)
print(dapao1.age)

# 如果该对象属于这个类,那么类拥有的,对象一定拥有

定义类语法:

'''
class 类名(驼峰体):
    school = 'oldboy'  # 定义变量(给类添加属性)
    
    def choose_course(self):  # 定义在类内部的函数一般称为方法(给类增加技能)
        pass
'''

定制对象的独有特征

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)
posted @ 2019-09-05 19:15  Isayama  阅读(191)  评论(0编辑  收藏  举报