python 六大数据类型

Number数据类型(int整型  float浮点型  bool布尔型  complex复数类型)

(1)int  整型 (正整形  0  负整型)

  '''var 指代一个变量'''

    

 

  type  用来获取变量的类型

  id   用来获取变量所指向那个值的地址

    

 

  三种进制表达最后的结果 均为 int整形类的数据  属于十进制的结果

    

 

(2)float  浮点型即小数

    它有两种表达形式:

  

(3)bool  布尔型  (True 真   False假)

   

(4)complex  复数类型

    复数:实数 + 虚数  两部分构成的

          complex(实数,虚数)  注意:这种表达方式虚数不能加j 即(5,2) 非 (5,2j) 否则会错

  例:5 + 6j       5  就是实数    6j  就是虚数

    j  若有一个数,它的平方等于-1,那么这个数就是j,科学家认为有,复数代表的是高精度类型.

  表达方式一:

      complexvar = 5 + 6j

      complexvar = 3 - 2j

      print(type(complexvar))

      print(id(complexvar))

   表达方式二:  complex(实数,虚数)

      res = complex(14,2)

      print(res)   => (14,2)

 

容器数据类型(str  字符串型  list  列表型  tuple  元组型  set集合型  dict字典型)

(1)str 字符串型

  '''用引号引起来的就是字符串,三种引号:单引号  双引号  三引号'''

    转义字符:\    (1)    把有意义的字符转变为无意义的字符

              (2)    把无意义的字符转变的有意义

    \n  或者  \r\n  :  代表"换行"意思

      \t      :   代表"一个缩进"意思

      \r      :   代表将\r后面得所有字符拉到该行首    

 三种引号表达的字符串:

  #  单引号表达字符串   

   

  #  双引号表达字符串

 

  

 

  #  这两种情况较为特殊,如果外面是双引号,里面就要单引号,反之一样

                     #  非要使用双引号,使用 \ 进行转义

 

 

   #  三引号表达字符串  (支持跨行)

  

 

  #  元字符串   r"123"

    '''元字符串可以让转义字符失效'''

    

  #  字符串的格式化

  "%d   %f   %s"  语法 : "字符串"  %  (实际值)

   %d  占位符  d代表整型数据

  

  结果:何健翰买了3个充气娃娃

  

  %f  占位符  f代表浮点型数据  默认保留6位小数点,f前面有数值,则根据数值是多少保留对应小数点

  

  

  %s  占位符  代表字符串 

  

 

(2)list  列表型

       '''特征:可以获取和修改数据,排列有序'''

  #  列表值的获取方法如下解释:

  #  正向下标  从0开始代表第一个数值     1代表第二个数值 往后以此类推
  #  反向下标  从-1开始代表最后一个值  -2代表倒数第二个值 往前以此类推

  #  若是不知道列表的长度 想要快速获取最后一个值的下标    怎么办?


  #  用 len 来获取列表的长度

  #  listvar = ["傻逼",3,3.14,True,False,2-2j,"傻逼",3,3.14,True,False,2-2j]
  #  res = len(listvar)
  #  res2 = len(listvar)-1
  #  print(res2)
  #  print(listvar[res2])

  

列表的修改

  

(3)tuple  元组型 

  '''  特征:可以获取但不能修改数据,排列有序'''

  '''
  #   tuplevar = () 这是一个空元祖
  #   tuplevar = (1) 这是一个整型
  #   tuplevar = (1,) 这是一个元祖
  #        综上所述 : 判断tuplevar = (?)或tuplevar = (?,)这两种是不是元组,
       取决于里面值是否有逗号,有 就是元组 没有就是别的数据类型
       空元祖可以使用()来表示
  '''


  #   获取元组中的数据 : 跟列表list的取值一模一样 (正向下标,反向下标)


  #   修改元组中的值,不可以修改,会进行报错

 

  

(4)str    字符串

       strvar = ""


  #   特征:可以获取,但不可以修改,有序排列

  #   获取字符串中的数据:跟列表list 元组tuple的取值一模一样(正向下标,反向下标)

  #   修改字符串当中的值,不可修改,会进行报错

 

(5)set   集合型

  setvar  =  {}     数据类型显示是一个dict 字典
  setvar  =  set()     强制转换成一个空集合的数据类型(只有这一种类型)


  #   特征:不可获取,也不可以修改,无序排列,自动去掉重复数据

  #   获取集合当中的数据:不能获取,会进行报错

  #   修改集合当中的数据:不可修改,会进行报错

(6)dict   字典

  dictvar  =  {}

  #   冒号左边是键,右边是值,键值对之间用逗号隔开

  #   特征 : 可以获取,可以修改,无序排列(python3.6版本看似有序、实则无序
  #   底层,使用了哈希算法,储存的数据是散列)(3.5版本无序),键值对储存的数据

  #   获取字典当中的数据:可以获取,直接输入冒号左边的键即可取值的数据

  #   修改字典当中的数据:可以修改,直接将要改的值替换掉 键 就可实现修改

 

  # 一般在命名字典的键时,推荐使用字符串,按照变量命名的字符串.

  

  # 哈希算法
  '''
  定义;把不可变的任意长度值计算成固定长度的唯一值,这个值可正可负,可大可小
  但长度固定,该算法叫哈希算法,这个固定长度值叫哈希值

  特点: 哈洗过的数据储存时,是一个随机存放的散列,并不是按照次序依次存放的,
  所以通过哈希算法储存数据的速度较快

  查找: 字典的键就是按照哈希算法算出来的,可以通过该键找散列中的对应值,形成
  映射关系,所以集合,字典在本质上都是无序的

  版本:3.6版本之前都无序
  3.6版本之后把字典的字面顺序记录下来,当从内存拿数据的时候,根据字面
  顺序重新排列,所以看起来有序,但本质上无序
  '''

 

  "可哈希数据: (不可变的数据)  Number (int float bool complex)" str tuple"

  "不可哈希的数据  (可变的数据)  list set dict"

 

 

  # 自动类型转换( 针对于Number数据类型来说的 )

  #  规律: 精度从低到高  bool ->  int  ->  float  ->  complex
  #  当两个不同的数据类型运算时,默认向更高精度转化

  #  True    转化成整型是    1          False    转化成整型是    0


  #  int + float 类型较特殊,最终值会保留小数点后15~18位,因为float在本质上存在精度损耗,

    因为小数的二进制在内存中是无限循环没有终止,一般截取15~18位

 


   

 

posted @ 2019-04-25 22:28  若白°  阅读(12733)  评论(0编辑  收藏  举报