数据类型

单位换算

  • 最小的单位为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):用引号括起来的一串字符

    • 单引号或双引号都可以,也可以使用三个单引号或双引号
    • 单引号中的单引号及双引号中的双引号都需要转义
      • 转义字符:换行(\n)、制表(\t)等
      • 有时''也需要转义
    • 一行显示不完时,换行处理
    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))

python基础01—基础数据类型的更多相关文章

  1. MSSQLServer基础01(数据类型)

    数据库设计:范式 现阶段,必须遵守满足3NF 1范式:列的原子性,即列不可再拆分 2范式:表中不能描述多个信息,不能有数据冗余 3范式:引用其它表的主键信息 数据类型的意义: 1>提高效率.(减 ...

  2. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  3. python基础部分----基本数据类型

    0.文章来源:http://www.cnblogs.com/jin-xin/articles/7562422.html 1.数字 2.bool 3.str字符串 3.1.字符串的索引与切片. 索引即下 ...

  4. python变量与基础数据类型

    一.什么是变量 变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...

  5. python基础(基础数据类型)

    一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...

  6. Python基础(2) - 动态数据类型

    Python是一门强类型语言,单定义变量时不需要制定类型. C#这样定义变量: ; VB这样定义变量: Python不需要制定类型,给变量赋什么类型的值,它就是什么类型.(穿神马就是神马?) > ...

  7. python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

    1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...

  8. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  9. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

随机推荐

  1. 解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

    nginx先监听了ipv4的80端口之后又监听了ipv6的80端口,于是就重复占用了.更加坑人的是你去看了端口占用它又把80端口释放了,是不是很囧. 解决方案是编辑nginx的配置文件 修改这一段:

  2. android样式相关

    转载自Keegan小钢,原文链接http://keeganlee.me/post/android/20150830

  3. 新装的Ubuntu没有ipconfig和ping命令

    新装的Ubuntu或者Docker pull的Ubuntu镜像创建的容器没有ipconfig和ping命令 解决办法: 1.apt-get update 2.安装和ifconfig有关的工具 apt ...

  4. Makefile 调试

    一.简介 GNU make 提供了若干可以协助调试的内置函数以及命令行选项. 用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出错时恢复原状. 二.ma ...

  5. Luogu 4251 [SCOI2015]小凸玩矩阵

    BZOJ 4443 二分答案 + 二分图匹配 外层二分一个最小值,然后检验是否能选出$n - k + 1$个不小于当前二分出的$mid$的数.对于每一个$a_{i, j} \geq mid$,从$i$ ...

  6. Yii2中ACF和RBAC

    ACF ( Access Control Filter) ACF ( Access Control Filter)官网的解释就是一个可以在模型或控制器执行行为过滤器,当有用户请求时,ACF将检查acc ...

  7. Servlet入门第一天

    1. 使用 JavaEE 版的 Eclipse 开发动态的 WEB 工程(JavaWEB 项目) 1). 把开发选项切换到 JavaEE 2). 可以在 Window -> Show View ...

  8. HUSTSE2017级5班3组小组JIRA软件使用体验看法汇总--未订正版

    小组JIRA软件使用体验看法汇总 小黄 JIRA还是比较方便的,在项目组合管理阶段,可以让团队同时按时发布,也可以让计划变得更容易和快捷,可以跟踪团队的重要计划,清楚的了解项目的进度. 看了JIRA的 ...

  9. (函数)实现strstr函数

    题目:实现strstr函数. 这个函数原型 strstr(char *a, char *b),在a中是否包含b这个字符串,包含返回第一个子串的位置,否则返回NULL. 思路:其实这个就是找子串的问题. ...

  10. LibreOJ 6004 圆桌聚餐 (最大流)

    题解:天啊,这道最大流真是水的一批……只需要每张桌子向每个单位建一条容量为1的边,源点向桌子建边,容量为桌子能坐的人数;单位向汇点建边,容量为单位人数即可,然后根据单位与桌子的连边值是否为一来了解每个 ...