1. 冯诺依曼体系:
2. 语言的分类
计算机语言分为:低级语言和高级语言,从高级语言到低级语言之间需要一个转换工具:编译器、解释器
分类 | 代表 | 特点 |
---|---|---|
编译语言 | C,C++ | 编译器本地编译,把源代码转换成目标机器的CPU指令 |
解释语言 | ava、Python、C# | 解释器将源代码转为字节码(中间码bytecode),在虚拟机上运行 |
3. python解释器
类开 | 特点 |
---|---|
CPython | c语言开发,应用最广泛解释器 |
IPython | C语言开发,增强CPython |
PyPy | Python语言开发,JIT(Just-In-Time Compiler即时编译)技术,动态编辑pyhton代码 |
Jpython | Python语言开发,编译成java字节码,在JVM上跑 |
IronPython | Python语言开发,在.Net平台上编译成.net字节码 |
4. 标识符
- 一个名字,用来指代一个值
- 只能字母、下划线和数字
- 只能以字母或下划线开头
- 不能是python的关键字,例如def、class就不能作为标识符
- Python是大小写敏感的
- 约定:
- 不允许使用中文
- 不允许使用歧义单词,例如class_ 在python中
- 不要随便使用下划线开头的表示符
5. python的语言类型
python是动态、强类型语言:
类别 | 优点 | 特征 |
---|---|---|
动态语言 | 不用事先声明,承时可以赋值为其它类型 | 编译时检查类型 |
静态语言 | 需要事行声明,定义后类型不能改变 | 编译时不检查,运行时检查 |
强类型语言 | 不同类型之间操作,必须先强制类型转换为同一类型 | 例:print(‘a’+1) python是强类型,所以会报错 |
弱类型语言 | 不同类型之间之间操作,自动隐式转换 | javascript是弱类型:console.log(1+‘a’) --结果:1a |
6. 运算符的优先级
原则:算数运算符 > 位运算符 > 身份运算符 > 成员运 算符 > 逻辑运算符
7. 内存管理(GC)***
python中采用引用计数记录所有的对象的引用数:
- 计数增加:python中赋值即定义,变量赋值过程就是此对象引用计数+1
- 当对象引用数变为0,它就可以被 垃圾回收GC
- 计数减少情况:
- 函数运行结束时,局部变量就会被自动销毁,对象引用计数减少
- 变量被赋值给其它对象
8. 分支
单分支:condition必须是个bool类型,有个隐式转换bool
if condition:
代码块
多分支:if…elif…else
if condition1:
代码块1
elif condition2:
代码块2
else:
代码块
9. 真值表:
condition为0的情况:
- 空(空字符串、空字典、空列表、空元组)
- None对象
- 0
10. while循环
语法:当条件满足即condition为True时,进入循环体,执行block
while condition:
block
11. for循环
语法:当可迭代对象中有元素可以迭代,进入循环体,执行block
for element in iteratable:
block
小知识:range[start,stop,step]–step通常用来处理奇偶数
12. 循环continue、break语句
- continue和break是循环的控制语句,只影响当前循环,包括while、for循环
- 如果循环嵌套,continue和break也只影响语句所在的那一层循环
- continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所在的循环
13. 循环else语句:如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行
while…else
#while
while condition:
block
else:
block
for…else
#for循环
for element in iteratable:
block
else:
block