• python基础01—基础数据类型


    数据类型

    单位换算

    • 最小的单位为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 = 0b 001 010 011
    • 十六进制
      • 基数09、AF,逢16进1,python中以'0x'开头
      • 示例:0xAB = 10 * 16^1 + 11 * 16^0 = 160 + 11 = 171
      • 十六进制转二进制:十六进制1位表示4位二进制
        • 0xABC = 0b 1010 1011 1100
    • 计算机中的数据是以哪种进制存储的?为什么?
      • 二进制,因为计算机只识别二进制,具体原因如下:
      • 稳定性高(只有0和1),成本低(技术上容易实现),与生活中的真假逻辑相吻合
    • 计算机中的数据是如何存储的?
      • 如何存储负数?
        • 最高位作为符号位,0表示正数,1表示负数
        • 虽然牺牲了最不常用的最高位,但是解决了负数问题,并且简化了硬件设计(节约成本)
      • 原码、反码、补码?
        • 正数的三码一致,只有负数才有反码和补码
        • 反码等于原码的符号位不变,其余位取翻
        • 补码等于对于的反码加1
        • 计算机中的数据都是以补码的形式存在

    数据类型

    • 数据类型是为了处理不同的运算而存在,

    • python中的数据类型有:整型、浮点、字符串、列表、元组、字典、集合、空

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

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

      # 小数(浮点数)
      b = 3.14
      print(type(b))
      
      # 科学计数法
      c = 3.14e-3
      print(c)
      
    • 布尔(bool):与生活中的真假逻辑相对应

      # bool类型,只有两个值,True和False
      d = False
      print(type(d))
      
    • 空(NoneType):是一个特殊的类型,只有一个值(None)

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

      • 单引号或双引号都可以,也可以使用三个单引号或双引号
      • 单引号中的单引号及双引号中的双引号都需要转义
        • 转义字符:换行( )、制表( )等
        • 有时''也需要转义
      • 一行显示不完时,换行处理
      g = 'hello' 
          ' world'
      print(g)
      
      h = 'hello 
      world'
      print(h)
      
      i = '''
      abc
      def
      123
      '''
      print(i)
      
      • 统计字符个数
      # 无论什么字符,都是一个长度
      s = 'hello你好'
      print(len(s))
      
      • 字符串拼接
      # 直接拼接
      s2 = 'hello' + 'world'
      print(s2)
      
      # 指定的字符串重复若干次,然后拼接一起
      s3 = 'abc' * 3
      print(s3)
      
      • 提取单个字符
      s4 = '123456'
      # 从开头提取,下表从0开始
      print(s4[0])
      # 从末尾提取,下表从-1开始
      print(s4[-2])
      
      • 字符串切片(提取一段)
      s5 = 'abcdefg'
      # s[起始下表:结束下表],包括起始下表元素,不包括结束下表元素
      print(s5[0:3])
      # 从开头提取到指定位置
      print(s5[:4])
      # 从指定下表提取到结尾
      print(s5[3:])
      # 下表为1开始,提取到倒数第二个,不包括倒数第二个
      print(s5[1:-2])
      # 提取最后4个字符
      print(s5[-4:])
      # 提取全部
      print(s5[:])
      # 指定步进值,默认为1
      print(s5[::2])
      # 字符串逆序
      print(s5[::-1])
      
      • 格式化
      name = 'goudan'
      like = 'wangdahua'
      age = 18
      
      print('我叫%s,暗恋%s,她今年%d岁了' % (name, like, age))
      
      # 字符 => ASCII
      print(ord('a'))
      # ASCII => 字符
      print(chr(65))
      
      print('我叫{},喜欢{},今年{}岁了'.format(name, like, age))
      print('我叫{2},喜欢{1},今年{0}岁了'.format(name, like, age))
      print('我叫{nm},喜欢{lk},今年{a}岁了'.format(nm=name, lk=like, a=age))
      

    %s:给字符串占位的

    %d:给整型数据占位

    %f:给浮点数占位

    %c:给字符占位

    ​ ASCII:

    ​ 09:4857

    ​ AZ:6590

    ​ az:97122

    • 列表(list):通过[]定义,里面可以存放任意类型的数据

      • 取值:lt[0]、lt[-1]
      • 列表是可以修改的,lt[1] = '小敏'
      • 存在越界问题
      • 也可以进行 '+' 和 '*' 的运算
      • 也可以进行切片操作
      • lt[:] = [],表示清空列表
      • lt[:2] = [],删除前两个元素
    • 元组(tuple):通过()定义,其他操作与列表相同

      • 元组不可修改
      • 当只有一个元素时,元素后要添加一个逗号
    • 集合(set):使用{}定义,

      • 空的集合不能使用大括号定义(留给字典用的),使用set()定义
      • 集合是不可修改
      • 集合中的元素时无序的
      • 集合中的元素不能重复
      • 简单使用
      s = {'李白', '杜甫', '白居易', '苏轼', '陶渊明', '李白'}
      s2 = {'李白', '李商隐', '杜牧', '苏轼'}
      print(type(s))
      print(s)
      # 交集
      print(s & s2)
      # 并集
      print(s | s2)
      # 差集
      print(s - s2)
      print(s2 - s)
      
      # 空的集合这样定义,不能使用{}
      s3 = set()
      print(type(s3))
      
    • 字典(dict):通过{}定义

      • 元素是由键值对组成的
      • 键和值之间使用':'连接
      • 字典中的键是唯一的,值可以是任意的
      • 字典是可变的
      • 简单使用:
      d = {'name': 'xiaoming', 'age': 18}
      print(d)
      print(type(d))
      
      # 根据键提取对应的值
      print(d['name'])
      
      # 键不存在时会报错
      # print(d['abc'])
      # 键存在返回对应的值,键不存在返回None,也可以自定义默认值
      print(d.get('abc', '默认值'))
      
      # 没有则添加键值对
      # d['hello'] = 'world'
      # 已存在则修改
      d['name'] = 'xiaofang'
      # 删除元素
      # del d['name']
      # print(d)
      
      # len返回的是键值对的个数
      print(len(d))
      
    • 强制类型转换

      int()     # 转化为整型
      float()       # 转换为浮点数
      str()     # 转换字符串
      list()        # 转换为列表
      tuple()       # 转换为元组
      set()     # 转换为集合
      dict()        # 转换为字典
      
      l = [('name', 'xiaoming'), ('age', 18)]
      # 将列表转化为字典
      d1 = dict(l)
      print(d1)
      

      列表的去重,列表 => 集合 => 列表

    • 获取变量地址

      a = 10
      print(id(a))
      
  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/wzbk/p/10307585.html
Copyright © 2020-2023  润新知