python_1
编程基础

    程序
        一组能让计算机识别和执行的指令
    电子计算机
        能够执行程序的机器
    现代计算机
        艾伦.麦席森.图灵,英国数学家,逻辑学家.图灵提出的图灵机模型为现代计算机的逻辑工作方式奠定了基础
        冯.诺依曼犹太人数学家,计算机科学家,物理学家和化学家.提供二进制作为计算机的数制基础,计算机应有的五大部件

    冯.诺依曼体系架构
        输入设备,输出设备,运算器,控制器,存储器

        CPU由运算器和控制器组成
        运算器,完成各种算术运算,逻辑运算,数据传输等数据加工处理
        控制器,控制程序的执行
        存储器,用于记忆程序和数据,例如内存
        输入设备,将数据或程序输入到计算机中,例如键盘,鼠标
        输出设备,将数据或程序处理结果展示给用户,例如显示器,打印机等

            CPU中还有寄存器和多级缓存Cache

    语言

        计算机语言
            人与计算机之间交互的语言
        机器语言
            一定位数组成二进制的0和1的序列,称为机器指令.机器指令的集合就是机器语言
        汇编语言
            用一些助记符替代机器指令,称为汇编语言.ADD A,B指的是将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中

        语言分类
            低级语言
                面向机器的语言,包括机器语言,汇编语言
                不同的机器不能通用,不同的机器需要不同的机器指令或汇编程序
            高级语言
                接近自然语言和数学语言的计算机语言
                高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序

        高级语言
            编译语言,把源代码转换成目标机器的CPU指令(C,C++等)
            解释语言,解释后转换成字节码,运行在虚拟机上,解释执行中间代码(Java,Python,C#等)

            高级语言的发展
                非结构化语言
                    编号或标签,GOTO,子程序可以有多个入口和出口
                    有分支,循环
                结构化语言
                    任何基本结构只允许是唯一入口和唯一出口
                    顺序、分支、循环,废弃GOTO
                面对对象语言
                    更加接近人类认知世界的方式,万事万物抽象成对象,对象间关系抽象成类和继承
                    封装、继承、多态
                函数式语言
                    古老的编程范式,应用在数学计算、并行处理的场景。引入到了很多现代高级语言中
                    函数是'一等公民',高阶函数

        程序
            算法+数据结构=程序
            数据一切程序的核心
            数据结构是数据在计算机中的类型和组织方式
            算法是处理数据的方式,算法有优劣之分

        写程序难点
            理不清数据
            搞不清处理方法
            无法把数据设计转换成数据结构,无法把处理方法转换成算法
            无法用设计范式来进行程序设计
            世间程序皆有bug,但不会debug