——————————– 一些计算机知识 ———————————–
冯诺依曼体系架构
冯诺依曼体系是指,计算机由以下五部分组成
输入设备、储存器、运算器、控制器、输出设备
储存器:例如内存,暂时储存数据的(坏处是内存里的信息掉电丢失;好处就是快)。
输入设备:键盘、鼠标、摄像头等。
输出设备:显示器、打印机等。
运算器:CPU的一部分,进行运算的。
控制器:控制程序的进行。
(有些设备即使输入设备,也是输出设备。例如硬盘,归属于IO设备。IO设备,直接和输入输出设备打交道,缺点就是慢。所以,要在CPU和IO设备之间,加一个内存。)
(CPU中有寄存器和多级缓存Cache。从CPU角度看,内存太慢了,寄存器可以和CPU的频率一致。)
(数据如果能放在内存中,可以大大提高效率。)
(怎么使用内存空间更为高效,是很重要的问题。)
计算语言的运行
C、C++等语言的源代码需要本地编译。
Java、Python等源代码需要被解释器编译成中间代码(Bytecode),然后在虚拟机上运行。
程序=算法+数据结构
我们要十分精确的掌握数据结构,数据在计算机中类型和组织方式;
算法就是解决问题的办法,算法有优劣之分。
(计算机没办法表达精确的小数,例如:无限循环小数、π。)
pyenv
pyenv(python environment),用于Python环境的部署,和Python的多版本管理。
pyenv的使用:
global 全局改变版本
shell改变当前shell的版本
local改变当前所在目录的版本
——————————–Python基础———————————
标识符:
一个名字,用来指代一个值。(这个值储存在内存中)
只能有字母、下划线和数字组成,不能以数字开头。
python 关键字,不要作为标识符。
python大小写敏感。
变量:
变量就是在赋值后,可以改变的标识符。python 中没有常量,只有变量。
字面常量:
一个单独的量,例如:12、’abc’、’3.141592654’
python语言类型:
python 是动态语言(无需事先声明变量的类型,赋值后可以随时改变类型)、且为强类型语言(python中不同类型之间的操作,必须进行强制类型转换)。
运算符:
算术运算符:
+ - * / // % **
位运算符:
& | ~ ^ << >>
例:
32//8相当于32>>3.
# 2的5次方 //2的3次方;32转换为二进制是00100000,往右移三位是00001000,等于8。
^ 异获(相异出1)
比较运算符:
== != > <
返回的是一个bool值
逻辑运算符:
与 或 非 and or not
短路运算符(在于谁放前面,谁放后面):
and,如果前面的是False,那后面就没必要算了,这个逻辑表达式直接给False。
or,如果前面是True,后面就没必要算了,直接给True。
赋值运算符:
= += -= *= /= %=
原码、反码、补码:
原码:就是转化成二进制的码
例:7 => 0b0111
反码:正数反码与原码相同;负数的反码,符号位不变,其余位按位取反。
补码:正数补码与原码相同:负数的补码转化成原码,符号位不变,其余位按位取反,再+1。