python_1

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

```