2.6 Python 基本数据类型
文章目录
- 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 基本数据类型相关推荐
- Python的零基础超详细讲解(第四天)-Python的数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
- python的数据类型和变量
python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...
- python核心数据类型_Python核心数据类型-列表
Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...
- python判断数据类型type_Python 判断数据类型有type和isinstance
Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...
- Python基础数据类型之set集合
Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...
- Python基础数据类型之字符串(二)
Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...
- Python基础数据类型之字符串(一)
Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...
- 好好学python·基本数据类型
好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...
- python元组类型_什么是python元组数据类型
什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...
- python核心数据类型_Python核心数据类型—元组
Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...
最新文章
- 学习网页制作中如何在正确选取和使用 CSS 单位
- 数据集获取加速神器来了!
- php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址
- 熬10天夜,肝出了这个PDF版“软件安装手册”(附下载)
- linux-Tcp IP协议栈源码阅读笔记
- mysql uuid 性能_mysql InnoDB UUID 主键 性能优化【性能分析篇】.md
- 使用docker commit将修改后的容器保存为镜像及其使用注意事项
- Python基础篇【第6篇】: Python模块subprocess
- vue 页面切换动画_Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理...
- arduinowifi.send怎么获取响应_Vue3.0 响应式原理 (一)
- Centos7 安装Go环境
- 【Python】元组和列表相关知识总结
- 除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?
- HTML复选框可以设置为只读吗?
- springboot显示信息并且修改_Spring Boot小结-03--增.删.改.查
- 汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码
- iPhone MSN评测报告
- 1.爬虫系统学习--爬虫应知知识(后续还会更新)
- Excel VB脚本,下拉框多选
- NLP学习笔记30-SVM 对偶、KTT,核函数
热门文章
- iOS获取设备的唯一标识的方法总结以及最好的方法
- solidity第一课—了解Remix和Hellosolidity三行代码
- c语言延时30s的程序,用c语言实现后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序...
- 彩色图像RGB三通道问题探究
- AndroidStudio修改单行注释灰不拉基的颜色
- 【供应链架构day9】美团配送系统架构的演进之路:从MVP到规模化
- Custom Resource Definitions Operator
- 【陈寿福案】珊瑚虫QQ侵权案民事判决书
- 【Python】修行路
- HIT 深入理解计算机系统 大作业 程序人生-Hello’s P2P