Python解释器
CPython C语言开发的Python解释器,最广泛 IPython 一个交互式、功能增强的CPython Pypy Python语言写的Python解释器,JIT技术,动态编译Python代码 Jpython Python的源代码编译为Java的字节码,跑在JVM上 IronPython 与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码
Python基础语法
python的语言类型(动态、强类型) 静态编译语言 事先声明变量类型,类型不能再改变 编译时检查类型 动态编译语言 不用事先声明类型,随时可以赋值为其他类型 编程时不知道是什么类型,很难推断 强类型语言 不同类型之间操作,必须先强制类型转换为同一类型. 弱类型语言 不同类型间可以操作,自动隐式转换,JavaScript中console.log(1+'a')
注释— # 标注文本
数字 整数,不区分long和int 进制0xa、0ob10、0b10 bool,True、False 浮点数 复数 字符串 前缀r或R,把里面的所有字符当普通字符对待 转义序列 缩减 续行 标识符 常量 字面常量 变量 运算符 算术运算符 位运算符 原码,反码,补码,负数表示法 比较运算符 ==,!= 可做不同类型值的比较,其余不可 逻辑运算符 赋值运算符 身份运算符 运算符优先级 表达式 算数表达式 逻辑表达式 赋值表达式 赋值即定义 内存管理 内存回收以及内存碎片整理 程序控制 顺序 分支 循环 真值表 非零为真,非None为真,非'空集合'为真 空集合: 空字符串 空字典 空列表 空元组
- 原码,反码,补码
原码
5 => 0b101
1 => 0b1
-1 => -0b1
bin(-1)
反码
正数将原码按位取反;负数符号位不变其余按位取反
补码
正数的补码是其本身;负数符号位不变其余按位取反后+1
总结: 计算机返回给用户是原码 补码的补码为原码
示例:
5 - 1 = ?
0000 0101 5(原)
0000 0001 1(原)
5 - 1 = 5 + (-1) 0000 0101 5 1000 0001 -1(原) 1111 1111 -1(补码) 结果: 10000 0100 舍弃第九位得结果0000 0100,表示0b100 ~12 = ? ~:按位非 0000 1100 12(原) ~ 1111 0011 负数(负数在计算机中使用补码存储,需要转换为原码输出) 1000 1101 -13(原码) 结果: ~12=-13 10^9=? 10^-9=? ^ 按位异或 0000 1010 10(原码) 0000 1001 9(原码) ^ 操作 0000 0011 3(原码) 0000 1010 10(原码) 1000 1001 -9(原码) ^ 操作 1000 0011 -3(原码) 结果: 10^9=3,10^-9=-3
```