-
输入设备 键盘、鼠标
输出设备 显示屏
存储器 内存
运算器 其中运算器中包含寄存器,寄存器是用来处理数据的
控制器 控制计算机的各个部件
运算器和控制器都在CPU内,同时CPU还包含着多级缓存
运行速度之间的比较:
CPU>存储器>输入输出设备
1.int
2.进制 0xa 16进制、0o10 八进制、0b10 二进制
3.bool,两个值 False、True
1. 1.2、3.1415、-3.4 1.46e等价于1.46*10**9
2.本质上使用了C语言的 double 类型
1+2j
1.使用 ' " 使用单双引号引用的字符序列
2. ''' 和 “”“ 单双三引号,可以跨行,可以在其中自由的使用单双引号
3. r前缀:在字符串前面加r或者R前缀,表示该字符串不做特殊处理
4. f 前缀:格式化字符串
1. \\、\n、\r、\t、\'、\“
2.前缀r ,把里面所有的特殊字符当普通字符对待
1.未使用C等语言的花括号,而是采用缩进的方式显示层次关系
2.约定使用四个空格缩进
1.在行尾使用\
2.如果使用括号,括号内是一个整体,内部跨行不能用\
1.一个名字,用来指代一个值
2.只能是字母、下划线和数字
3.只能以字母或下划线开头
4.不能是python的关键字,例如:def、class就不能作为标识符
5.python大小写是敏感的
约定:
不允许使用中文
不要使用歧义单词,如class_
在python中不要随便使用下划线开头的标识符
1.常量一旦赋值就不能改变值得标识符
2.python中无法定义常量
1.一个单独的量
1.赋值后可以改变值的标识符
1.事先声明变量的类型,类型不在改变
2.编译时检查
1.不用事先声明类型,随时可以赋值为其他类型
2.编程时不知道什么类型,很难推断
1.不同类型之间操作,必须强制转换为统一类型
print('a' + 1)
1.不同类型间可以操作,自动隐式转换
JavaScript 中 console.log(1 + 'a')
二进制 十进制 十六进制
0000 0011 3 3
0000 0111 7 7
0000 1111 15 F
0001 1111 31 1F
0011 1111 63 3F
0111 1111 127 7F
48 0x30
49 0x31
65 0x41
97 0x61
128 、64 、32 、16 、8 、4 、2 、1
1 1 1 1 1 1 1 1
1.二进制的八位对应的是十进制的这八组数字
例如:0001 1111 转十进制, 计算过程就是1++2+4+8+16得到的和就可
1.十六进制中1-15 的表示方法是
1 2 3 4 5 6 7 8 9 A B C D E F
举例:0011 1111 转十六进制,十六进制是以四位为一组的,前四个
字节相加得到的结果是 3 ,后四个字节相加得到15,15在十六进制
中 用 F 来表示,所以这组数的结果就是3F
1.可以用二进制转十进制的办法
2.可以用十进制的数除 2 ,所得的商和余数从下往上取
举例:65 转为二进制
2 | 65 1
————
2 | 32 0
————
2 | 16 0
————
2 | 8 0
————
2 | 4 0
————
2 | 2 0
————
1
所得的商和余数从下往上一次取得 1000 0001
1.可以按位展开
举例:0xA6
A 在十六进制中表示的是 10
10: 1010 6: 0110
组合起来的结果就是 1010 0110
1. + - * / % (取模) **(几次方)
1. & 按位与
| 按位或
^ 异或
<< 左移
>> 右移
2. 异或————相异出一
~ 按位取反,包括符号位
// 整除 32 // 8,相当于32 >> 3
0010 0000 左移三位相当于去掉三个 0 所得的数值 0000 0100 就得到4
~12 得多少?
12 转为二进制 0000 1100 原码
0111 0011 反码
1000 1101 补码 最高位是1代表负数 -13
正数的反码与原码相同,负数的反码符号位不变,其余按位取反
正数的补码与原码相同,负数的补码符号位不变,其余为按位取反后+1,
举例:10^9 、 10^-9
10^9 ,解题思路:把它们的原码异或就行
10: 0000 1010 原码
9: 0000 1001 原码
得到 0000 0011 转为十进制就是 3
10^-9
10: 0000 1010 原码
-9: 1000 1001 原码
1000 0011 -3
1. == != > < >= <=
2.返回一个bool 值 True False
1<'1' 1=='1'
3.链式比较操作符
4>2>3 4>mynumber>=1
1.and 如果前面的表达式等价为False,后面就没有计算的必要了,
这个逻辑表达最后一定等价为False
1 and '2' and 0
0 and 'abc' and 2
2.or 如果前面的表达式等价为True,后面就没有计算的要了,这
逻辑个表达式最后一定等价为True
1 or False or None
对象/常量 值
"" 假
"string" 真
0 假
>=1 真
<=-1 真
() 假
[] 假
{} 假
None 假
False 等价于布尔值,相当于bool
1. 空容器
(1)空集合 set
(2)空字典 dict
(3)空列表 list
(4)空元组 tuple
2.空字符串
3.None 对象
4.0
1.a=min(3,5)
2. += -= *= /= %= //=
3.x=y=z=10
in 、 not in
is 、 not is
算数运算符>位运算符>身份运算符>成员运算符>逻辑运算符
单目>双目>三目
1. 内存空洞:还没有使用,比如列表需要连续的空间, 空
2. 洞就是还没有使用的不连续空间
3. 内存碎片:正在使用 正在使用的不连续空间
4. 垃圾回收:解决内存碎片化,把标记不用的空间整理出来,
把内存空洞连接起来, 把内存碎片组合起来,使其成为连续可
用的空间。
4.垃圾回收的弊端:内存搬家会造成 Stop Word ,这个期间只
能进行垃圾回收不能进行其他工作
5.怎样分辨是不是不用的内存空间?
根据引用计数,如果某个数据引用计数是0那么可以把它标记
垃圾回收的弊端:内存搬家会造成 Stop Word ,这个期间只能进行垃圾回收不能进行其他工作
2.怎样分辨是不是不用的内存空间?
根据引用计数,如果某个数据引用计数是0那么可以把它标记