zoukankan      html  css  js  c++  java
  • 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))
    • 说明:了解,不要深究

  • 相关阅读:
    C#listbox使用方法
    poj 3894 System Engineer (二分图最大匹配--匈牙利算法)
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 黑白无常
  • 原文地址:https://www.cnblogs.com/swjblog/p/9665062.html
Copyright © 2011-2022 走看看