文章目录

  • 1. 数据类型
  • 2. Number 数字
    • 2.1 int 整型
    • 2.2 float 浮点型
    • 2.3 complex 复数
    • 2.4 bool 布尔
  • 3. Str 字符串
  • 4. List 列表
    • 4.1 定义列表
    • 4.2 获取元素
    • 4.3 修改元素
  • 5. Tuple 元组
    • 5.1 元组
    • 5.2 获取元素
    • 5.3 修改元素
  • 6. Dict 字典
    • 6.1 定义字典
    • 6.2 获取元素
    • 6.3 修改元素
    • 6.4 版本差异
  • 7. Set 集合
  • 8. 不可变类型
  • 9. 可变类型
  • 10. 练习

1. 数据类型

数据也就是对象, 数据类型也就是对象的类型.
每个数据类型都有自己的特色, 在选择数据类型存储数据时, 需要选择合适的类型来记录状态.
* 存不是目的, 存的目的是为了日后取出来用, 并且方便的用.
六个基本的数据类型:
数字, 字符串, 列表, 元组, 字典, 集合.

能存多个值的数据类型被称之为容器类型, 例: 列表, 元组, 字典, 集合.

2. Number 数字

数字类型细分四种: 整型, 浮点型, 复数, 布尔.
* 数字类型适用于数据计算.

2.1 int 整型

整型: 不包含小数部分的数字, 包含正整数与负整数和0.
Python 中整数类型的取值范围无限的, 但实际受限于计算机内存的大小.
num = 1print(num)  # 1
print(type(num))  # <class 'int'>

2.2 float 浮点型

浮点型: 带小数点的数字.
浮点型的取值范围及小数精度都存在限制, 但实际使用过程中可以忽略不计.
浮点型数据占用的字节小, 计算结果过大存在溢出问题.浮点型除了可以使用小数点格式外还可以用科学计算法表示.
在科学计数法中, 为了使公式简便, 可以用带 'E'的格式表示, 'E' 是 exponent(指数)的缩写.
例如: 1.03乘10的8次方, 可简写为 1.03E+08 的形式.
f1 = 1.1print(f1)  # 1.1
print(type(f1))  # <class 'float'># 科学计数法
f2 = 1.03e8
print(f2)  # 103000000.0
print(type(f2))  # <class 'float'>

2.3 complex 复数

复数: 是由'实部'与'虚部'构成. Python 中, 复数以j或J为后缀.
c1 = 0.5jprint(c1)  # 0.5j
print(type(c1))  # <class 'complex'>

2.4 bool 布尔

布尔: 只有 True'真' 与 False'假', (首字母大写).
* 布尔值常用条件判断表达式.
Python 中的'真'与'假'的值:
假:False, None,  0,  0.0,  '',  [],  {},  (,) ··· 所有为空的元素···
真: 除上之后都为真.
Python 中 布尔值是属于数字类型, bool 类 继承 int 类.
isinstance(值, 类型) 函数判断某个值是否属于否个类型.

3. Str 字符串

字符串类型: 使用引号引起来的字符组合.
特征: 使用引号引起来的字符称为字符串, 字符串可以是中文, 英文, 数字, 符号等混合组成.
* 字符串常用与输出提示信息.
Python 中可以使用的引号:
* 1. 单引号       'x'
* 2. 双引号       "x"
* 3. 三单引号   '''x'''
* 4. 三双引号   """x"""
三单引号, 三双引号, 的左侧没有赋值符号的时候是注释,
有赋值符号的时候是字符串, 按书写时的样式原样输出, 书写几行就是以行行显示.
str1 = 'x'
str2 = "x"
str3 = '''x'''
str4 = """x"""print(str1, str2, str3, str4, type(str1))  # x x x x <class 'str'>

4. List 列表

列表: 是一个有序可重复的元素集合, 一个可变长度的顺序存储结构, 每一个位置存放的都是对象的指针.
特征: 使用中括号括起来, 内部可以存放多个数据, 元素与元素之间用逗号隔开, 元素可以是任意数据类型.
结构: 变量 = [元素1, 元素2, 元素3, ···]* 列表用于存储多个数据.

4.1 定义列表

# 空列表
list1 = []
print(list1)  # []
print(type(list1))  # <class 'list'>list2 = [1, 1.1, 'a', [6, ]]
print(list2)  # [1, 1.1, 'a', [6]]

4.2 获取元素

列表中的每个元素都有对应的索引.取值格式: 变量[索引]
嵌套取值: 变量[索引][索引]
list1 = [1, 1.1, ['a', 'b']]
print(list1[1])  # 1.1# 第一步执行list1[2], 得到 ['a', 'b']. 第二步执行['a', 'b'][1], 得到'b'.
print(list1[2][1])  # b

4.3 修改元素

将指定的元素得值替换掉.
修改格式: 变量[索引] = 新值
list1 = [1, 2]
print(list1)  # [1, 2]# 修改元素的值
list1[0] = 'a'
list1[1] = 'b'print(list1)  # ['a', 'b']

5. Tuple 元组

5.1 元组

元组与列表类似, 不同之处在于元组的元素不能修改, 元素内部的元素类型是可变类型的话支持修改.
特征: 使用小括号括起来, 内部可以存放多个数据, 元素与元素之间用逗号隔开, 元素可以是任意数据类型.
* 元组只有一个元素的时候元素后面加上一个逗号, 否则就不是元组, 而是整型.
* 推荐所有容器类型, 无论内部有几个元素, 末尾要加上逗号, 尤其是只有一个值得时候.变量名 = (元素1,)
变量名 = (元素1, 元素2, ···)
省略括号写法:
变量名 = 元素1,
变量名 = 元素1, 元素2, ···
# 空元组
t1 = ()
print(t1, type(t1))  # () <class 'tuple'># 元组只有一个值得时候在值得后面加上逗号,
t2 = (1,)
print(t2, type(t2))  # (1,) <class 'tuple'># 一个int的数据类型, 加上括号, 括号被省略, 那还是整型。
t3 = (1)
print(t3, type(t3))  # 1 <class 'int'># 省略写法
t4 = 1,
print(t4, type(t4))  # (1,) <class 'tuple'>
t5 = 1, 2, 3
print(t5, type(t5))  # (1, 2, 3) <class 'tuple'>

(1) 是一个整型, 整型加厉害就多余了, 所以提示: 移除冗余的圆括号.

5.2 获取元素

元组和元组一样可以按索引取值.
取值格式:变量[索引]
嵌套格式: 变量[索引][索引]···
t1 = (1, ['a', 'b'])
print(t1[0])  # 1
print(t1[1][0])  # a

5.3 修改元素

t1 = (5,)
# 元组修改值
t1[0] = 1
运行工具窗口显示:
Traceback (most recent call last):File "C:\Users\13600\PycharmProjects\test\test.py", line 3, in <module>t1[0] = 1
# 类型错误:“tuple”对象不支持项分配
TypeError: 'tuple' object does not support item assignment

* 元组不支持修改元素是因为Tuple的类中没有设置__setitem__属性.

* 元素内部的元素类型是可变类型的话支持修改.
t1 = (1, [1, 2])
print(t1)  # (1, [1, 2])t1[1][0] = 0
t1[1][1] = 'a'
print(t1)  # (1, [0, 'a'])

意外类型:(int, int)可能的类型:(SupportsIndex, list[int])(slice, Iterable[list[int]])
列表在作为一个容器类型的元素时, 列表自身的元素是同一个类型的话, Pycharm 会认为列表该该类型列表,
对列队元素修改是, 期待该元素的新值也是该类型, 否则会提示警告. 这个警告可以忽略.
元素的类型不都是一样的话就不会出现提示.

6. Dict 字典

字典: 是一种映射类型(mapping type), 是一个无序的键:值对集合.
特征: 大括号括起来, 可以存放多个元素, 元素之间用逗号隔开, 元素为 K:V 键值对形式.Key: 是对v的描述信息, 必须使用不可变类型, 在同一个字典中键唯一, 否则出现覆盖现象.Value: 真正的数据, 可以是任意类型.结构: 变量 = {key: value}* 字典用于精准存储数据.

6.1 定义字典

dict1 = {'name': 'kid', 'age': 18, 'hobby': '学习'}print(dict1)  # {'name': 'kid', 'age': 18, 'hobby': '学习'}
print(type(dict1))  # <class 'dict'>

6.2 获取元素

通过 Key 来取值.取值格式: 变量[key]
嵌套取值: 变量[key][key]···
dict1 = {'name': 'kid', 'age': 18, 'hobby': {'白天': '学习'}}print(dict1['name'])  # kid
print(dict1['hobby']['白天'])  # 学习

6.3 修改元素

不能修改键, 只能修改值, 选中key, 替换value.
修改格式: 变量[key] = value
dict1 = {'name': 'qz'}
print(dict1)  # {'name': 'qz'}dict1['name'] = 'kid'
print(dict1)  # {'name': 'kid'}

6.4 版本差异

Python 3.5版本之前的存储是无序的, 3.5版本之后数据存储是有序的.
* 数据存储是无序, 那么意味着输出的顺序是无序的.

7. Set 集合

集合:是一个去重的无序序列, 无法通过索引取值. 集合的元素必须是哈希类型.
特征: 用大括号括起来, 可以存放多个元素, 元素与元素用逗号隔开, 元素自动去重保留一个.
列表和字典不是哈希类型, 集合的元素不能是列表和字典.
结构: 变量 = {元素1, 元素2,} * 集合用于去重与关系运行.
set1 = {1, 'xx', 1, }
print(set1)  # {1, 'xx'}
print(type(set1))  # <class 'set'>
# 集合存储列表(错误示例)
set1 = {1, [1, ]}
运行工具窗口显示:
Traceback (most recent call last):File "C:\Users\13600\PycharmProjects\test\test.py", line 2, in <module>set1 = {1, [1, ]}
# 类型错误:不可哈希类型:'List'
TypeError: unhashable type: 'list'

# 集合存储字典(错误示例)
set1 = {1, {'k1', 18}}
运行工具窗口显示:
Traceback (most recent call last):File "C:\Users\13600\PycharmProjects\test\test.py", line 2, in <module>set1 = {1, {'k1', 18}}
# 类型错误:不可哈希类型:'set'
TypeError: unhashable type: 'set'

8. 不可变类型

不可变类型: 原地不能改变的变量类型, 又称为哈希类型, 例: 数字, 字符串, 元组, 布尔.
* 哈希类型可利用 hash() 函数查看值得 hash 值, 不可哈希类型使用会报错.
# 定义值
num = 1
print(id(num))  # 3065024178480# 修改值, id值改变
num += 1
print(id(num))  # 3065024178512

9. 可变类型

可变类型: 原地可变类型, 又称不可哈希类型, 例: 列表, 字典, 集合.
# 定义列表
l1 = [1, 2]
print(l1, id(l1))  # [1, 2 ] 2296425933568# 修改列表的值, id值不变.
l2 += [3]
print(l2, id(l2))  # [1, 2, 3] 2296425933568

10. 练习

1. list与dict区别?相同点: 都能存多个值, 称之为容器类型不同点:list是用索引对应值, 索引反映的是位置与顺序.dict是用key对应值, key对值可以有描述性功能通常为字符串类型.
2. 请取出第一个学生的第一个爱好.students_info = [['a', 18, ['play',]], ['b', 18, ['play', 'sleep']]]
3. 请取出取公司名
info = {'name': 'kid','hobbies': ['play', 'sleep'],'company_info': {'name': 'XX','emp_num': 40,}
}
4. 取第二个学生的第二个爱好
students_info = [{'name': 'a', 'age': 16, 'hobbies': ['play', 'sleep']},{'name': 'b', 'age': 17, 'hobbies': ['read', 'sleep']},{'name': 'c', 'age': 18, 'hobbies': ['music', 'read', 'sleep']},
]

文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.


2.6 Python 基本数据类型相关推荐

  1. Python的零基础超详细讲解(第四天)-Python的数据类型

    Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...

  2. python的数据类型和变量

    python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...

  3. python核心数据类型_Python核心数据类型-列表

    Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...

  4. python判断数据类型type_Python 判断数据类型有type和isinstance

    Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...

  5. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  6. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  7. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  8. 好好学python·基本数据类型

    好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...

  9. python元组类型_什么是python元组数据类型

    什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...

  10. python核心数据类型_Python核心数据类型—元组

    Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...

最新文章

  1. 学习网页制作中如何在正确选取和使用 CSS 单位
  2. 数据集获取加速神器来了!
  3. php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址
  4. 熬10天夜,肝出了这个PDF版“软件安装手册”(附下载)
  5. linux-Tcp IP协议栈源码阅读笔记
  6. mysql uuid 性能_mysql InnoDB UUID 主键 性能优化【性能分析篇】.md
  7. 使用docker commit将修改后的容器保存为镜像及其使用注意事项
  8. Python基础篇【第6篇】: Python模块subprocess
  9. vue 页面切换动画_Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理...
  10. arduinowifi.send怎么获取响应_Vue3.0 响应式原理 (一)
  11. Centos7 安装Go环境
  12. 【Python】元组和列表相关知识总结
  13. 除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?
  14. HTML复选框可以设置为只读吗?
  15. springboot显示信息并且修改_Spring Boot小结-03--增.删.改.查
  16. 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码
  17. iPhone MSN评测报告
  18. 1.爬虫系统学习--爬虫应知知识(后续还会更新)
  19. Excel VB脚本,下拉框多选
  20. NLP学习笔记30-SVM 对偶、KTT,核函数

热门文章

  1. iOS获取设备的唯一标识的方法总结以及最好的方法
  2. solidity第一课—了解Remix和Hellosolidity三行代码
  3. c语言延时30s的程序,用c语言实现后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序...
  4. 彩色图像RGB三通道问题探究
  5. AndroidStudio修改单行注释灰不拉基的颜色
  6. 【供应链架构day9】美团配送系统架构的演进之路:从MVP到规模化
  7. Custom Resource Definitions Operator
  8. 【陈寿福案】珊瑚虫QQ侵权案民事判决书
  9. 【Python】修行路
  10. HIT 深入理解计算机系统 大作业 程序人生-Hello’s P2P