• 桐花万里python路-基础篇-01-历史及进制


    • 历史及版本
      • 作者:吉多·范罗苏姆(龟叔)
      • 时间:1989年
      • 重要版本:
        • 2.4  2004年 同年Django诞生
        • 2.6  2008
        • 3.0  2008
        • 2.7  2010
        • 3.6  2016.12 当前使用版本
      • py2和py3
        • 区别:统一、标准、去除重复代码
        • 类库更改
          Python2.x        |    Python3.x
          _winreg          |     winreg
          ConfigParser | configparser
          copy_reg      | copyreg
          Queue | queue
          SocketServer     |      socketserver
          markupbase | _markupbase
          repr     | reprlib
          test.test_support | test.support  
        • In summary : Python 2.x is legacy, Python 3.x is the present and future of the language
    • Python解释器
      • 种类
        • CPython 官方
        • IPython   交互增强的CPython
        • Pypy       JIT,非解释的动态编译
        • JPython  Java字节码
        • IronPython .Net字节码
      • 编译型和解释型
        • 编译型:编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。C,C++,Go,Object-C,Swift,...
        • 解释型:没有编译过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行。Ruby,PHP,Javascript,...
        • 基于虚拟机的语言:通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。JAVA,C#,其实Python是基于虚拟机的混合型语言
        • 特点:一般来说,解释型的语言开发效果高,易于维护、跨平台,编译型的语言运行效率较高
    • 执行脚本
      • 交互器
      • 指定解释器 
        #!/usr/bin/env python
        
        print("hello world!")
    • 其他说明
      • 编码 :py2默认编码为ASCII ,py3为UTF_8
        # -*- coding: utf-8 -*-
      • 注释:
        # 单行注释
        
        '''
        多行注释
        多行注释
        多行注释
        ...
        '''
        
        #
        
        """
        多行注释
        多行注释
        多行注释
        ...
        """ 
      • 空行
        • 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。 空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
      • 分号
        • 一般不用分号,如果单行需要写多个语句则需要。
      • 缩进
        • python非常注重缩进,2个空格或4个空格或1个Tab键。
      • 多行语句
        • 末尾使用斜杠 ( ) ,将一行分为多行
          a = 5
          b = 6
          c = 7
          
          d = a + 
              b + 
              c
    • 进制
      • 是一种计数的方式,数值的表示形式
      • 常用进制
        • 二进制 b
        • 八进制 o
        • 十进制 
        • 十六进制 hex
      • 机器数
        • 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。
        • 机器数是带符号的,用一个数的最高位存放符号, 正数为0, 负数为1
      • 真值
        • 将带符号位的机器数对应的真正数值称为机器数的真值
        • 因为第一位是符号位,所以机器数的形式值就不等于真正的数值
      • 原反补
        • 数据在计算机内部是以补码的形式储存的
        • 数据分为有符号数和无符号数,无符号数都为正数,由十进制直接转换到二进制直接存储(其实也是该十进制的补码)即可
        • 正数的最高位是符号位0,其原码是由十进制数转换到的二进制数字;负数的最高位是 符号位1,其原码后面的位也为10进制数转换过去的二进制数字,都是用补码方式表示 有符号数的
        • 原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值
        • 反码:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反
        • 补码:正数的补码是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
        • 正数:三码合一
        • 负数:反码 = 源码取反,补码 = 反码+1, 或者 补码 = 源码取反 + 1
          1+(-1) = 0
          
          00000000 00000000 00000000 00000001 1 源码
          00000000 00000000 00000000 00000001 1 反码
          00000000 00000000 00000000 00000001 1 补码
          
           
          
          10000000 00000000000000000000000001 -1源码
          11111111 11111111 11111111 11111110    -1反码
          11111111 11111111 11111111 11111111 - 1补码
          
           
          
          
          00000000 00000000 00000000 00000001    1的补码
          11111111 11111111 11111111 11111111 +    -1的补码
          ----------------------------------------------------------------------------
          00000000 00000000 00000000 00000000 0
          
          1(源码) + (-1)(源码) = -2
          
          1(反码) + (-1)(反码) = -0
          
          1(补码) + (-1)(补码) = 0
      • 位运算
        • & 按位与 
          • 同1为1,有0为0
          • 只有对应的两个二进位均为1时,结果位才为1,否则为0
          • 任何一个数和1进行&(按位与)得到任何一个数的二进制的最后一位
        • | 按位或
          • 有1则1
          • 只要对应的二个二进位有一个为1时,结果位就为1,否则为0
        • ^ 按位异或
          • 同0非1
          • 当对应的二进位相异(不相同)时,结果为1,否则为0
        • ~ 取反
          • 各二进位进行取反(0变1,1变0)
        • 左移 <<
          • 各二进位全部左移n位,高位丢弃,低位补0
          • 左移可能会改变一个数的正负性
          • 左移1位相当于乘以2的n次方
          • 8<<3 等同于8*(2**3)
        • 右移 >>
          • 各二进位全部右移n位,保持符号位不变
          • 所有二进制位向右移动n位,移出的位删掉,移进的位补符号位
          • 右移不会改变一个数的符号
          • 右移 n 位就相当于除以2的n次方
          • 8>>3 等同于8/(2**3)
  • 相关阅读:
    2.如何搭建MQTT环境
    1.如何安装maven
    4.线程同步-未使用线程同步的生产者/消费者关系
    3.线程的优先级和线程调度
    2.如何使用matlab拟合曲线
    1.如何安装matlab2016a
    2.线程状态:一个线程的声明周期
    Oracle"TNS监听程序找不到符合协议堆栈要求的可用处理程序"解决方案
    快速登录MySQL数据库
    数据仓库模型建设基础及kimball建模方法总结
  • 原文地址:https://www.cnblogs.com/zhujingxiu/p/8182403.html
Copyright © 2020-2023  润新知