zoukankan      html  css  js  c++  java
  • day 10 预科

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

    IPO

    Input(输入)--》Process(过程/处理)--》Output(输出)

    塑料(定义变量) --》 (融化 --》 丢到瓶子的摸具里面) --》瓶子(输出结果)

    类似于车间(流水线的工作过程)--》面向对象编程

    未来码代码的目的:输入一些变量,然后会通过一系列的步骤改变变量,然后得到你想要的结果

    def compare2(x, y):
        if x > y:
            return x
        else:
            return y
    
    
    x = input()
    y = input()
    res = compare2(x, y)
    
    print(res)
    

    面向过程编程:一步一步(一个函数一个函数),上一个函数的输出是下一个函数的输入

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

    缺点:一个错误,让程序直接崩掉了

    编程

    控制变量不断地变化(初级开发)

    怎么找bug

    x = 10
    y = 20
    
    # 流程1
    # 变量没变化一次,就打印一次,
    # 流程2
    
    # 流程(方法有无数种)--》需求的实现是多样化的,压根就没有唯一解
    
    
    res = 50 
    

    debug的来源

    1. 定位bug,不一定是那一行出错了
    2. 打印变量变化的状态,判断该流程是否有问题

    计算机永远不会出错,出了问题,一定是自己的代码逻辑有问题

    面向对象编程

    面向(对着)对象object编程

    对象与对象之间交互

    类和对象

    对象

    一系列特征(属性)和技能(方法)的结合体

    选课系统

    '''
    学生类:
         姓名
         身高
         体重
         年龄
         技能:
             选课
             
    默默对象:
         姓名:默默
         身高:175
         体重:140
         年龄:21
         技能:
             选课
             把妹
             
    大炮对象:         
         姓名:大炮
         身高:160
         体重:240
         年龄:38
         技能:
             选课
             大炮
             
    老师类:
          姓名
          身高
          体重
          年龄
          技能:
              上课
              
     nick对象:
          姓名:nick
          身高:172
          体重:120
          年龄:31
          技能:
              上课
              泡妞
         
         
    '''
    

    (模板/类别)划分了对象,具有相同的属性和技能的对象属于同一类(自己控制)

    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}正在选课')
    

    定义对象

    momo=Student('momo',170,130,21)
    print(momo,name)
    print(momo,height)
    print(momo,weight)
    print(momo.age)
    momo.choose_course()
    
    dapao=Student('大炮',160,240,38)
    print(dapao,name)
    print(dapao,height)
    print(dapao,weight)
    print(dapao,age)
    
    dapao1=Student('大炮',160,240,38)
    print(dapao1.name)
    print(dapao1.height)
    print(dapao1.weight)
    print(dapao1.age)
    
    

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

    定义类语法

    '''
    class 类名(驼峰体):
        school='odboy'  # 定义变量(给类添加属性)
        
        def choose_course(self):  # 定义在类内部的函数一般称为方法(给类增加技能)
    
    '''
    
    
    
    class Student:
        '''注释:学生类'''
        school='oldboy' # 定义变量(给类添加属性)
        
        def choose_course(self):  # 定义在类内部的函数一般称为方法(给类增加技能)
            print(self)
            print('选择课程')
            
            
    stu_dict=Student.__dict__ # 获取类的所有属性和方法  
    print(stu_dict)
    print(stu_dict['school']) # 获取学校
    stu_dict['choose_course'](123)
    print(Student.__doc__)
    
            
    

    函数定义阶段:检测语法,不执行代码

    类定义阶段:执行代码

    定义对象 (实例化对象)

    stu1=Student() # stu1就是一个对象
    
    print('stu1:',stu1)
    print(stu1.school)
    print(id(stu1.school))
    stu1.choose_course() # 对象使用类中的方法时,不需要加参数,因为实例化对象调用该方法时,python会自动将该实例化对象传给self
    
    stu2=Student()
    print('stu2:',stu2)
    print(stu2.school)
    print(id(stu2.school))
    stu2.choose_choose()
    
    '''
    函数对象
    x=10
    y=x
    print(y)
    
    def x():
        print('from f1')
    
    y=x
    y()
    
    '''
    

    定制对象独有特征

    stu1=Student()
    stu1.name='momo'
    stu1.height=160
    stu1.weight=170
    print(stu1.name)
    print(stu1.weight)
    
    stu2=Student
    stu2.name='dapao'
    stu2.height=160
    stu2.weiht=240
    print(stu2.name)
    print(stu2.weight)
    class Student():
        school='oldboy'
        
        def choose_course(self):
            print('正在选课')
            
            
    def init(obj,name,height,weight):
        obj.name=name
        obj.height=height
        obj.weight=weight
        
    
    stu1=Student()
    init(stu1,'momo','175','140')# init是你用来给对象添加独有特征的函数
    print(stu1.name)
    print(stu1.height)
    print(stu1.weight)
    
    stu2=Student()
    init(stu2,'dapao','160','240')# init是你用来给对象添加独有特征的函数
    print(stu2.name)
    print(stu2.height)
    print(stu2.weight)
    
    
    class Student():
        school='oldboy'
        
        def __init__(self,name,height,weight):
            print(self)
            self.name=name # self=stul --> stu1.name='dapao'
            self.height=height
            self.weight=weight
            
        def choose_course(self):
            print('正在选课')
            
    stu1=Student('momo',175,140) 
    print('stu1:',stu1)
    print('stu1.name',stu1)
    
    stu2=Student('dapao',160,240)
    print('stu2:',stu2)
    print('stu2.name',stu2)
    
    

    LeetCode检测机制

    class Solution:
        def twoSum(self,nums:list,target:int) --> list:
            for i in range(len(sums),-1,-1): # for i in range=(4) == for i in [0,1,2,3]:
                for j in range(i+1,len(nums)): #[1,2,3]
                    if num[i]+nums[j] == target:
                        return[i,j]
                    
    
    def main(nums,target,result):
        s = Solution()
        res = s.twoSum(nums,target)
        if res == result:
            print('通过')
            
            
    def main2():
        main([2, 7, 11, 15], 9, [0, 1])
        main([1, 2, 3], 3, [0, 1])
        main([1, 2, 3], 3, [0, 1])
        main([1, 2, 3], 3, [0, 1])
        main([1, 2, 3], 3, [0, 1])
        main([1, 2, 3], 3, [0, 1])
        main([1, 2, 3], 3, [0, 1])
    
    main2()            
    

  • 相关阅读:
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
  • 原文地址:https://www.cnblogs.com/colacheng0930/p/11453919.html
Copyright © 2011-2022 走看看