zoukankan      html  css  js  c++  java
  • python认知及六大标准数据类型

    ---
    typora-root-url: assets
    
    ---
    
    ### -python的认知
    
    ```
    89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). 
    python具有非常多并且强大的第三方库,使得程序开发起来得心应手. Python程序员的信仰:人生苦短,我用python!
    
    (1)版本:
    python2x:原码不规范,重复较多
    python3x:原码清晰,简单
    	
    (2)编译型与解释型语言区别:
    	编译型:一次性,把所有代码编译成机器能识别的二进制,在运行
    		代表语言:c,c++
    		优点: 执行速度块
    		缺点: 开发速度慢,调试周期长
    		
    	解释型:代码从上到下一行一行解释并运行 
    		代表语言:python,php
    		优点: 开发效率快,调试周期短
    		缺点: 执行速度相对慢
    	*python语言可以直接在linux和windows跨平台使用.
    
    (3)python的解释器:
        (1)Cpython(官方推荐)
        	转化成c语言能识别的二进制码
        (2)Jpython
        	转化成java语言能识别的二进制码
        (3)其他语言解释器
        	把python转化成其他语言能识别的二进制码
        (4)PyPy
        	将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)
    
    ```
    
    ### -注释: 就是对代码的解释 方便大家阅读代码
    
    ```
    (1)注释的分类
    (2)注释的注意点
    (3)注释的排错性
    ```
    
    ### -变量:可以改变的量,实际具体指的是内存中的一块存储空间
    
    ```
    (1)关于变量的含义
    (2)变量的声明
    (3)变量的命名
    (4)变量的交换
    
    *常量就是不可改变的量,python当中没有明确定义常量的关键字,所以约定俗成把变量名大写就是常量,表示不可改变
    ```
    
    ### -python的六大标准数据类型
    
    ```
    (1)Number   数字类型(int  float  bool  complex)
    (2)String	字符串类型
    (3)List		列表类型
    (4)Tuple	元组类型
    (5)Set		集合类型
    (6)Dict		字典类型
    
    ->(1)Number 	数字类型分类
    int :    		整数类型    (正整数[各种进制] 负整数 0)
    float:   		浮点数类型  (1普通小数 2科学计数法表示的小数 例:a = 3e-5  #3e-05 )
    bool:    		布尔值类型  (真True和假False)
    complex: 		复数类型    (声明复数的2种方法) (复数用作于科学计算中,表示高精度的数据,科学家会使用)	
    ```
    
    ### -自动类型转换
    
    ```
    当2个不同类型的数据进行运算的时候,默认向更高精度转换
    数据类型精度从低到高:bool int float complex
    ```
    
    ### -强制类型转换
    
    ```
    -->Number 部分
    int :     整型   浮点型 布尔类型  纯数字字符串
    float:    整型   浮点型 布尔类型  纯数字字符串
    complex:  整型   浮点型 布尔类型  纯数字字符串 (复数)
    bool: 	  ( 容器类型数据  /  Number类型数据 都可以 )
    ```
    
    ```
    -->容器类型部分
    str:	  ( 容器类型数据  /  Number类型数据 都可以 )
    list:  	  字符串 列表 元组 集合 字典
    tuple: 	  字符串 列表 元组 集合 字典
    set:   	  字符串 列表 元组 集合 字典  (注意:相同的值,只会保留一份)
    dict:	  使用 二级列表 或 二级元组   (二级集合语法上不错,但是无序,不建议使用)
    ```
    
    ### -python运算符
    
    ```
    (1)算数运算符:  + - * / // % **
    (2)比较运算符:  > < >= <= == !=   
    (3)赋值运算符:  = += -= *= /= //= %= **=
    (4)成员运算符:  in 和 not in (针对于容器型数据)
    (5)身份运算符:  is 和 is not (检测两个数据在内存当中是否是同一个值)  
    (6)逻辑运算符:  and or not
    (7)位运算符:    & | ~ ^ << >>
    ```
    
    ### 在同一文件(模块)里,变量存储的缓存机制 (仅对python3.x版本负责 了解)
    
    ```
    -->Number 部分
    1.对于整型而言,-5~正无穷范围内的相同值 id一致
    2.对于浮点数而言,非负数范围内的相同值 id一致
    3.布尔值而言,值相同情况下,id一致
    4.复数的id标识都不相同(在 实数+虚数 这样的结构中)
    ```
    
    ```
    -->容器类型部分
    5.字符串而言,字符串值相同情况下,id一致
    6.列表,元组,字典,集合无论什么情况 id标识都不同(但空元组的id标识一样)
    ```
    
    ### 不同文件(模块)里,部分数据驻留小数据池中 (仅对python3.x版本负责 了解)
    
    ```
    python提前在内存中创建了-5 ~ 256 范围的整数,驻留在了内存的一块区域.
    如果是不同文件(模块)的两个变量,并在此范围具有了相同的值,
    那么id一致.
    
    小数据池只针对:int ,string,bool,以及空元祖(),None关键字   有效
    ```
    
    ```
    对于字符串来说:
    (1)字符串的长度为0或者1,默认驻留小数据池
    ```
    
    ![1](/../assets/1.png)
    
    ```
    (2)字符串的长度>1,且只含有大小写字母,数字,下划线时,默认驻留小数据池
    ```
    
    ![11](/2.png)
    
    ```
    (3)用乘法得到的字符串,分两种情况。
    1)乘数为1时:
    无论什么字符串 * 1 , 都默认驻留小数据池
    2)乘数大于1时:
    乘数大于1,仅包含数字,字母,下划线时会被缓存,但字符串长度不能大于20
    ```
    
    ![8](/8.png)
    
    ```
    ### 指定驻留 ###
    from sys import intern
    a = intern('大帅锅&*^^1234'*10)
    b = intern('大帅锅&*^^1234'*10)
    print(a is b)
    #可以指定任意字符串加入到小数据池中,无论声明多少个变量,只要此值相同,都指向同一个地址空间
    ```
    
    ![9](/9.png)
    
    ```
    *无论是缓存机制还是小数据池的驻留机制,都是为了节省内存空间,提升代码效率
    ```
    
    

      

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10765203.html
Copyright © 2011-2022 走看看