首先要知道 程序 是一组能让计算机识别和执行的指令。而 电子计算机是能够执行程序的机器。
python 语言由荷兰人:Guido van rossum(吉多·范罗苏姆)创建
要了解熟知的冯诺依曼体系架构,计算机是由5大体系组成的,输入输出设备,(运算器,控制器)组成CPU 还有存储器。
Cpu只认内存
CPU中运算速度的寄存器>缓存>内存>磁盘>io
控制器:控制总线,(一车道,由CPU控制)所有IO设备 用BUS
编译语言,指的是把源代码转换成目标机器的CPU指令
解释语言,指的是解释后转换成字节码,运行在虚拟机上,解释器执行中间代码
汇编语言是将写好的程序转换成机器指令
官方CPython
C语言开发,最广泛的Python解释器
IPython
一个交互式、功能增强的Cpython
PyPy
Python语言写的Python解释器,JIT技术,动态编译Python代码
Jython
Python的源代码编译成Java的字节码,跑在JVM上
IronPython
与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码
Python是动态语言、强类型语言
动态语言:不用事先声明类型,随时可以赋值为其他类型
强类型语言:不同类型之间的操作必须先强制装换为同一类型
是解释型语言,以文本形式存在,可以跨平台(运行于各大操作系统),不用考虑内存问题,可以处理的数量极大,默认编码为utf-8
两个不同类型的的拼接 print(‘a’+str(1))强制类型转换称为强语言 如Pythton
js是动态、弱类型语言print(‘a’+1) 自动转为字符
掌握2(B)、8(o)、10(D)、16(H)进制的转换.
例子:8421 (16进换为2进制)
9 = 1011
python 内建函数装换 :bin() 2进制, oct() 8进制 ,int() 十进制, hex()16 进制
+ - * / % **
自然除/结果是浮点数,整除//。
注:2.x中/和//都是整除
位运算符
& | ~ ^ << >>
常用方式:乘除2的倍数,32 // 8相当于 32 >> 3
^代表异或
10 ^ -9
01010
11001
10011 = -3
原码:
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是
[1111 1111 , 0111 1111]
即 [-127, 127]
反码:
正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
补码:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
比较运算符:
== != > < >= <=
返回一个bool值
1< ‘1’ 1==‘1’
链式比较操作符
4>3>2
and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量
4 and 3 返回 3
或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量
4 or 3 返回为 4
Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义
变量无须事先声明,也不需要指定类型,这是动态语言的特性Python编程中一般无须关心变量的存亡,一般也不用关心内存的管理
python使用引用计数记录所有对象的引用数
当对象引用数变为0,它就可以被垃圾回收GC
空容器
空字符串
None对象
AscII 码,英文字符加常见符号由一个字节组成
unitcode 是字符集,世界文字字符,分为utf - 8和utf -16 、utf-8 的字节组成,英文由一个字节,中文三个字节,生僻字,4到6个, utf-16统一2 个
GBK/GB2312/GB18030 国标,双字节字符集
计算机只能处理数据
缩进要以4行为一格, 行长为不超过80字符,空格,将程序不同的部分分开
\ 为继续上一行代码