基础语法:
一.冯诺依曼体系架构:
五大部件:
CPU:包括运算器和控制器,CPU只和一件设备,内存打交道。
运算器:是完成各种数学运算的,逻辑运算,数据传输等数据加工处理。数据是通过总线传输,总线则是使用电信号传输。
控制器:是用于控制程序的执行。
存储器:用于记忆程序和数据,例如内存(缺点:掉电易失数据)
输入设备:将数据或者程序数据传输到计算机中,例如键盘,鼠标。
输出设备:将数据或者程序的处理结果展示给用户,例如显示显示器,打印机。
CPU有三级cache,寄存器,cpu临时要计算的数据存储在寄存器中,寄存器的频率和CPU几乎同频率的运算频率,多级缓存则逐级递减。
高级语言和低级语言之间需要一个转换的工具:编译器,解释器。
编译语言:把源代码转换成目标机器的CPU指令。例如:C,C++。
解释语言:解释后转换成字节码,运行在虚拟机上,解释器执行中间代码(bytecode)。例如:java,python,C#等语言。
二.程序:算法 + 数据结构
数据是一切程序的核心
数据结构是数据在计算机中的类型和组织方式
算法是处理数据的方式,算法有优劣之分
算法运行时间并不以秒为单位,算法运行时间是从其增速的角度度量的。
python语言类型:
python是动态语言、强类型语言。
python中:赋值即定义,如果一个变量已经定义,赋值相当于重新定义。(动态语言的特性)
语言的分类:
- 静态编译语言:
事先声明变量类型,类型不能再改变
编译时检查 - 动态编译语言:
不用事先声明类型,随时可以赋值为其他类型
编程时不知道是什么类型,很难推断。 - 强类型语言:
- 不同类型之间的操作,必须先强制类型转换为同一类型。例:print('a'+1)
弱类型语言: - 不同类型之间操作,自动隐式转换,Javascript中console.log(1,+'a')
- 不同类型之间的操作,必须先强制类型转换为同一类型。例:print('a'+1)
重点:什么是动态语言,什么是强类型语言,强弱怎么区分?
强弱是一个相对概念,用一个字符串加上一个数字就可判定。
python解释器:
官方Cpython: