• Python基础—02-数据类型


    数据类型

    存储单位

    • 最小单位是bit,表示二进制的0或1,一般写作b
    • 最小的存储单位是字节,用byte表示,1B = 8b
    • 1024B = 1KB
    • 1024KB = 1MB
    • 1024MB = 1GB
    • 1024GB = 1TB
    • 1024TB = 1PB
    • 2^32 = 2^10 * 2^10 * 2^10 * 2^2 = 4GB

    进制转换

    • 十进制:
      • 基数为0~9,逢10进1
      • 示例:123 = 1 * 10^2 + 2 * 10^1 + 3*10^0 = 100 + 20 + 3 = 123
    • 二进制:
      • 基础0和1,逢2进1,python中使用'0b'表示
      • 示例:0b110100 = 2^5 + 2^4 + 2^2 = 32 + 16 + 4 = 52
      • 十进制转二进制:除2取余,倒序书写
        • 22 = 0b10110
    • 八进制:
      • 基数0~7,逢8进1,python中使用'0o'表示
      • 示例:0o123 = 1 * 8^2 + 2 * 8^1 + 3 * 8^0 = 64 + 16 + 3 = 83
      • 八进制转二进制:八进制的1位表示3位二进制数
        • 0o123 = 0b001 010 011
    • 十六进制:
      • 基数09、AF,逢16进1,python中使用'0x'表示
      • 示例:0xAB = 10 * 16^1 + 11 * 16^0 = 160 + 11 = 171
      • 十六进制转二进制:十六进制1位表示4位二进制数
        • 0xABC = 0b1010 1011 1100
    • 计算机中的数据,是以哪种进制存储的?为什么?
      • 二进制,因为计算机设计时只识别二进制。具体原因如下:
      • 稳定性高(0和1)、成本低(技术上易实现)、与生活中的真假逻辑相吻合(易于解决实际问题)
    • 计算机中的数据如何存储?
      • 如何存储负数?
        • 最高位作为符号位:0表示正数,1表示负数
        • 虽然牺牲了最高位,但是可以解决负数存储问题,进而简化了硬件设计成本
      • 原码反码和补码
        • 正数的三码一致,只有负数才有反码和补码
        • 负数的反码等与原码符号位不变,其余位取反
        • 负数的补码等于反码加1
        • 计算机中的数据都是以补码存储的

    数据类型

    • 不同的数据类型都是为了解决实际问题而出现,就是为了进行各种运算而存在

    • Python中常用数据类型:整型、浮点、布尔、字符串、列表、元组、字典、集合、空等

    • 整型(int):就是数学中的整数

    • 浮点(float):就是数学中的小数

      pi = 3.14
      print(pi)
      print(type(pi))
      
      # 科学计数法
      b = 3.14e-3
      print(b)
    • 复数(complex):了解

      c = 3 + 5j
      print(type(c))
    • 布尔(bool):只有True/False两个值,对应于生活中的真假

    • 空(NoneType):只有一个值None

    • 字符串(str):使用引号括起来的一串字符

      • 可以使用单引号双引号或者三引号定义
      • 转义:就是时特定的字符失去原有的意义,使用''进行转义
        • 单引号中的单引号,双引号中的双引号
        • 很多时候''也需要转义
        • 特殊:' '表示换行,' '表示制表
    • 列表(list):通过[]进行定义,可以存储一系列的任意数据,可以添加删除元素

      • 示例
      lt = [1, 3.14, 'hello']
      print(lt)
      print(type(lt))
      # 提取元素,下表从0开始,存在越界问题
      print(lt[0])
    • 元组(tuple):通过()进行定义,可以存储一系列的任意数据,不可以添加删除元素

      • 示例
      tp = ('小芳', '小敏', '小杜')
      print(tp)
      print(type(tp))
      print(tp[0])
      
      # 定义单个元素的元组时需要添加一个','
      tp2 = (123,)
      print(type(tp2))
    • 集合(set),使用{}进行定义,可以存贮一系列的任意数据,集合中的数据不能重复

      • 示例
      s = {'李白', '辛弃疾', '苏东坡', '欧阳修', '李白', '杜甫'}
      s2 = {'李白', '宋晓峰', '杜甫'}
      print(s)
      print(type(s))
      # 交集
      print(s & s2)
      # 并集
      print(s | s2)
      # 差集
      print(s - s2)
      print(s2 - s)
      
      # 定义空集合,不能使用{},这是留给定义空字典使用的
      # s3 = {}
      s3 = set()
      print(type(s3))
    • 字典(dict),使用{}进行定义

      • 元素是由键值对组成
      • 键和值之间使用':'连接
      • 字典中的键时唯一的,值可以是任意的
      • 字典中的元素可以添加和删除
      • 示例:
        a = 10
        print(id(a))
        # 通过id可以获取变量的地址
        # a = 20
        # print(id(a))
        b = 10
        print(id(b))

    类型转换

    • 隐式类型转换:运算、条件判断等

    • 强制类型转换:使用专门的函数就行类型转换

      int:转换为整型,可以通过base参数指示带转换数据的格式
      float:转换为浮点数
      str:转换为字符串
      list:转换为列表,参数必须是可迭代对象(str、tuple、set、dict)
      tuple:转换为元组,使用方法同上
      set:转换为集合,使用方法同上
      dict:转换为字典,参数的内容必须是成对出现的

    获取变量地址

    • 函数:id

    • 示例:

      a = 10
      print(id(a))
      # 通过id可以获取变量的地址
      # a = 20
      # print(id(a))
      b = 10
      print(id(b))
    • 说明:了解,不要深究

  • 相关阅读:
    行坐标HDU1175:连连看(DFS)
    hibernatesqlHibernate中createQuery与createSQLQuery两者的区别
    代码窗口九种方式实现 javascripts 弹出对话框窗口代码
    函数线程VC++多线程函数调用
    错误classspring错误汇总
    android下载手动下载Android SDK
    节点node[算法导论]二叉排序树(Binary Search Tree)
    共享访问失败解决(无法访问 您可能没有权限使用网络资源)
    DnsTester(DNS 服务器性能测试工具)
    vc 花指令 防破解
  • 原文地址:https://www.cnblogs.com/swjblog/p/9665062.html
Copyright © 2020-2023  润新知