Python的基本数据类型
上一篇博客,我们介绍了Python的基础语法(Python基础语法:从入门到精通的必备指南),相信大家看过后,对python的整个语法逻辑有了一些了解,不了解也没有关系。接下来,我们将正式开始,一个概念一个类型的讲下去,希望能讲清楚。
目录
1. Python的基本数据类型简介
2. 具体示例讲解
2.1 Number(数字)
2.2 String(字符串)
2.3 List(列表)
2.4 Tuple(元组)
2.5 Dictionary(字典)
2.6 Set(集合)
下面我们直接开始第一个基础模块,Python的基本数据类型。
1. Python的基本数据类型简介
Python是一种强类型的编程语言,这意味着每个变量都有一个固定的数据类型,不能随意改变。为什么讲数据类型呢?这里涉及到一个Python的概念,叫做“变量”。那么什么是变量?"变量" 是一个用来存储数据值的名称,也就是上一篇文章里面讲的标识符。
然而,Python是一种动态类型的语言,这意味着你不需要显式地声明变量的类型,Python会根据赋给变量的值自动推断出变量的类型。
比如,写了一个 a=10,这里a就是标识符,=就是变量赋值,10就是数据类型(整型)
好,那么按照上面的说法,10就是数据类型。接下来,我们就可以讲基本的数据类型了。
Python的基本数据类型可以分为以下六种:
- 数值(Numbers)
- 字符串(String)
- 列表(List)
- 元组(Tuple)
- 字典(Dictionary)
- 集合(Set)
数值(Numbers)
数值类型用于表示数字,包括整数、浮点数和复数。
- 整数(int):表示不带小数点的数字,例如 1、2、3 等。
- 浮点数(float):表示带小数点的数字,例如 1.2、3.14 等。
- 复数(complex):表示由实部和虚部组成的数字,例如 1+2j、3-4j 等。
notes:你会发现,有的布尔值(bool)也是数值类型,但是在Python3中,布尔值是int的子类,所以这里讲三种数值类型。
字符串(String)
字符串类型用于表示由字符组成的文本,例如 "Hello, world!"、"你好,世界!" 等。
列表(List)
列表类型用于表示一组有序的数据,可以是任何类型的数据。列表可以是其他数据类型的组合。
元组(Tuple)
元组类型与列表类型类似,但元组是不可变的,也就是说不能对元组中的数据进行修改。
字典(Dictionary)
字典类型用于表示一组无序的键值对,键可以是任何类型的数据,值也可以是任何类型的数据。
集合(Set)
集合类型用于表示一组无序且不重复的数据。
另外,按照数据类型的不可变数据和可变数据。下面表格总结了 Python 的基本数据类型:
数据类型 | 描述 | 可变性 |
数值 | 整数、浮点数、复数 | 不可变 |
字符串 | 由字符组成的文本 | 不可变 |
元组 | 一组有序的数据 | 不可变 |
列表 | 一组有序的数据 | 可变 |
字典 | 一组无序的键值对 | 可变 |
集合 | 一组无序且不重复的数据 | 可变 |
不可变数据是指一旦创建了一个对象,就不能对其进行修改,只能通过重新赋值来改变其值。
2.具体示例讲解
2.1 Number(数字)
Python中的数字类型有整数(int)、浮点数(float)、复数(complex)等。
# 整数
x = 10# 浮点数
y = 3.14# 复数
z = 2 + 3j# bool值
bl = Trueprint(x, y, z, bl)
输出:
10 3.14 (2+3j) True
2.2 String(字符串)
字符串是一系列字符的有序集合,在Python中用引号(单引号或双引号)括起来。字符串是不可变的,意味着一旦创建,就不能修改。
如果你学过C语言,C里面没有字符串,只有char变量生成的char数组。在Python中,String字符串也是一样,可以理解为一个数组。
类型为:变量[头部下标:尾部下标]
下图就是Python的字符串的结构:
上图,假设String的坐标为:TiYong,那么它有6个值,其中正向坐标是0-5,反向坐标就是-1--5。
下面我们以代码来解释:
str1 = 'TiYong' # 单引号一个字符串变量
str2 = "TiYong" # 双引号一个字符串变量print(str1) # 输出整个字符串
print(str2) # 输出整个字符串print(str1[0]) # 打印字符串的第一个字符
print(str1[-1]) # 打印字符串的最后一个字符
print(str1[2:5]) # 打印字符串第三到第五个字符(不包含第五个字符)
print(str1[2:]) # 打印字符串从第三个字符开始到末尾
print(str1 * 3) # 打印字符串三次
print(str1 + "------" + str2) # 打印字符串拼接
输出:
TiYong
TiYong
T
g
Yon
Yong
TiYongTiYongTiYong
TiYong------TiYong
2.3 List(列表)
列表是Python中最常用的数据类型之一,用于存储一系列有序的元素,可以包含不同类型的数据,也就是说,列表可以嵌套使用,可以是多种类型的组合。
下图是列表的展示:ls =
列表是可变的,可以通过添加、删除或更改元素来修改列表。可以看到
my_list = [1, "apple", True, 3.14, [5, 6, 7], {"name": "John", "age": 30}]# 按照正向索引坐标输出
print(my_list[0])
print(my_list[1])
print(my_list[2])
print(my_list[3])
print(my_list[4])
print(my_list[5])# 添加元素
my_list.append('orange')
print(my_list)# 修改元素
my_list[2] = 'tiyong'
print(my_list)# 删除元素
del my_list[0]
print(my_list)
输出结果:
1
apple
True
3.14
[5, 6, 7]
{'name': 'John', 'age': 30}
[1, 'apple', True, 3.14, [5, 6, 7], {'name': 'John', 'age': 30}, 'orange']
[1, 'apple', 'tiyong', 3.14, [5, 6, 7], {'name': 'John', 'age': 30}, 'orange']
['apple', 'tiyong', 3.14, [5, 6, 7], {'name': 'John', 'age': 30}, 'orange']
2.4 Tuple(元组)
元组是由多个逗号分隔的值组成的有序序列,用小括号括起来。元组是不可变的,一旦创建,元组中的元素就不能被修改、添加或删除。元组和列表很相似,不同的是元组不可改变,列表可以改变。
示例代码:
my_tuple = (1, "banana", False, 2.718, [8, 9, 10], {"color": "blue", "size": "large"})print(my_tuple[0]) # 输出第一个元素
print(my_tuple[-1]) # 输出最后一个元素
print(my_tuple) # 输出全部元素
输出结果:
1
{'color': 'blue', 'size': 'large'}
(1, 'banana', False, 2.718, [8, 9, 10], {'color': 'blue', 'size': 'large'})
2.5 Dictionary(字典)
字典是另一个非常有用的数据类型,用于存储键值对。字典是可变的,无序的,可以通过键来访问、添加或删除其中的元素。字典与列表类似,不同的是列表靠索引的偏移量来操作元素,字典拥有自己的key值。这里的关键是{ },这个花括号,还有键值对之间的 : ,这两点就是字典的标志了。
所以,字典的类型为:d = {key1 : value1, key2 : value2, key3 : value3 }
注意:Key必须是唯一的,但Value则不必。
直接来看代码:
my_dict = {"integer": 42,"string": "TiYong","boolean": True,"float": 3.14159,"list": [1, 2, 3],"tuple": ("a", "b", "c")
}# 输出整个字典
print("原始字典:")
print(my_dict)# 获取并输出特定键的值
print("\n获取特定键的值:")
print("整数值:", my_dict["integer"])
print("字符串值:", my_dict["string"])
print("布尔值:", my_dict["boolean"])
print("浮点数值:", my_dict["float"])
print("列表值:", my_dict["list"])
print("元组值:", my_dict["tuple"])# 修改字典中的值
my_dict["integer"] = 100
my_dict["string"] = "world"
my_dict["boolean"] = False
my_dict["float"] = 2.71828
my_dict["list"].append(4)
my_dict["tuple"] = ("x", "y", "z")# 输出修改后的字典
print("\n修改后的字典:")
print(my_dict)# 添加新的键值对
my_dict["new_key"] = "new_value"# 输出更新后的字典
print("\n添加新的键值对后的字典:")
print(my_dict)# 删除键值对
del my_dict["boolean"]# 输出删除键值对后的字典
print("\n删除键值对后的字典:")
print(my_dict)
示例输出结果:
原始字典:
{'integer': 42, 'string': 'TiYong', 'boolean': True, 'float': 3.14159, 'list': [1, 2, 3], 'tuple': ('a', 'b', 'c')}获取特定键的值:
整数值: 42
字符串值: TiYong
布尔值: True
浮点数值: 3.14159
列表值: [1, 2, 3]
元组值: ('a', 'b', 'c')修改后的字典:
{'integer': 100, 'string': 'world', 'boolean': False, 'float': 2.71828, 'list': [1, 2, 3, 4], 'tuple': ('x', 'y', 'z')}添加新的键值对后的字典:
{'integer': 100, 'string': 'world', 'boolean': False, 'float': 2.71828, 'list': [1, 2, 3, 4], 'tuple': ('x', 'y', 'z'), 'new_key': 'new_value'}删除键值对后的字典:
{'integer': 100, 'string': 'world', 'float': 2.71828, 'list': [1, 2, 3, 4], 'tuple': ('x', 'y', 'z'), 'new_key': 'new_value'}
2.6 Set(集合)
集合是一个无序且不重复的元素集合。集合是可变的,可以进行添加、删除操作,还可以进行集合运算,如并集、交集等。
语法:
parame = {value01,value02,...}
或者
set(value)
代码示例:
my_set = {1, "TiYong", True, 3.14, (5, 6, 7), frozenset({"a", "b", "c"})}# 输出整个集合
print("原始集合:")
print(my_set)# 添加一个新的元素
my_set.add("orange")# 输出添加元素后的集合
print("\n添加元素后的集合:")
print(my_set)# 尝试添加已存在的元素,集合不会发生改变
my_set.add("apple")# 输出尝试添加重复元素后的集合,没有变化
print("\n尝试添加重复元素后的集合:")
print(my_set)# 删除一个元素
my_set.remove(1)# 输出删除元素后的集合
print("\n删除元素后的集合:")
print(my_set)# 集合运算:并集
other_set = {3.14, "orange", "banana", 42}
union_set = my_set.union(other_set)# 输出并集
print("\n集合并集:")
print(union_set)# 集合运算:交集
intersection_set = my_set.intersection(other_set)# 输出交集
print("\n集合交集:")
print(intersection_set)
输出结果:
原始集合:
{1, 3.14, frozenset({'a', 'b', 'c'}), (5, 6, 7), 'apple'}添加元素后的集合:
{1, 3.14, frozenset({'a', 'b', 'c'}), 'orange', (5, 6, 7), 'apple'}{1, 3.14, frozenset({'a', 'b', 'c'}), 'orange', (5, 6, 7), 'apple'}删除元素后的集合:
{3.14, frozenset({'a', 'b', 'c'}), 'orange', (5, 6, 7), 'apple'}集合并集:
{3.14, 'banana', frozenset({'a', 'b', 'c'}), 42, 'orange', (5, 6, 7), 'apple'}集合交集:
{3.14, 'orange'}
PS C:\Users\MaiBenBen> & C:/Users/MaiBenBen/AppData/Local/Microsoft/WindowsApps/python3.8.exe f:/gastric.cancer/Untitled-1.py
原始集合:
{'TiYong', 1, 3.14, (5, 6, 7), frozenset({'a', 'c', 'b'})}添加元素后的集合:
{'TiYong', 1, 3.14, 'orange', (5, 6, 7), frozenset({'a', 'c', 'b'})}尝试添加重复元素后的集合:
{'TiYong', 1, 3.14, 'apple', 'orange', (5, 6, 7), frozenset({'a', 'c', 'b'})}删除元素后的集合:
{'TiYong', 3.14, 'apple', 'orange', (5, 6, 7), frozenset({'a', 'c', 'b'})}集合并集:
{'TiYong', 3.14, 'banana', 42, 'apple', 'orange', (5, 6, 7), frozenset({'a', 'c', 'b'})}集合交集:
{3.14, 'orange'}
以上就是Python中的基本数据类型的介绍。不可变数据类型包括Number(数字)、String(字符串)、Tuple(元组),它们一旦创建就不能修改。可变数据类型包括List(列表)、Dictionary(字典)、Set(集合),可以进行增删改操作。对于不同需求,选择合适的数据类型,决定了程序的性能和功能实现。
希望这篇博客能帮助你更好地理解Python中的数据类型。
如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!
往期学习:
Python安装教程(版本3.8.10)windows10
Linux系统:安装Conda(miniconda)
Conda快速安装的解决方法(Mamba安装)
VSCode安装教程(版本:1.87.0)Windows10
Python基础语法:从入门到精通的必备指南
相关文章:

Python的基本数据类型
上一篇博客,我们介绍了Python的基础语法(Python基础语法:从入门到精通的必备指南),相信大家看过后,对python的整个语法逻辑有了一些了解,不了解也没有关系。接下来,我们将正式开始&a…...

24考研有感
我考11408,总分339,408考了112分 408考的不甚满意,但是客观来说也没有低多少,毕竟我的学习时间太极限了,平均5天一本书,题只做了数据结构和计组的一部分选择,最后草草研究了几年的大题就上阵了…...

k8s中的PV和PVC存储介绍
目录 一.PV介绍 1.含义 2.关键配置参数 二.PVC介绍 1.含义 2.关键参数配置 三.PV和PVC的生命周期问题 1.PV的生命周期会有4个阶段 2.用户申请空间PV的周期流程 3.PV和PVC的使用/释放/回收 四.案例演示 1.NFS配置 2.新建PV 3.新建PVC 4.新建Pod测试 5.模拟删除P…...

SpringMVC--03--前端传数组给后台
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 案例1乘客个人信息方法1:表单提交,以字段数组接收方法2:表单提交,以BeanListModel接收方法3:将Json对象序…...

【C++干货基地】六大默认成员函数: This指针 | 构造函数 | 析构函数
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…...

99.qt qml-单例程序实现
在之前讲过: 58.qt quick-qml系统托盘实现https://nuoqian.blog.csdn.net/article/details/121855993 由于,该示例只是简单讲解了系统托盘实现,并没有实现单例程序,所以多次打开后就会出现多个exe出现的可能,本章出一章QML单例程序实现, 多次打开始终只显示出第一个打开…...

【软件工程】可用性测试:提升软件、网站与产品用户体验的关键环节
🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 目录 正文 关注点 界面设计: 导航测试: 交互测试: 易用性测试: 多平台兼容性: 我…...

EPLAN的国产平替软件?SuperWORKS自动化版尝鲜
在电气设计领域,EPLAN作为德国老牌软件,知名度较高,使用体验也非常好!在中国市场,是否有一款国产软件与之媲美?答案当然是有的! 接下来为大家分享一款宝藏级别的国产电气设计软件——SuperWORK…...

【MySQL 系列】MySQL 架构篇
在我们开始了解 MySQL 核心功能之前,首先我们需要站在一个全局的视角,来看 SQL 是如何运作执行的。通过这种方式,我们可以在头脑中构建出一幅 MySQL 各组件之间的协同工作方式,有助于我们加深对 MySQL 服务器的理解。 文章目录 1、…...

C++初阶:类与对象(初篇)
目录 1. 类与对象1.1 引子:结构体与类1.2 什么是类(类的定义方式)1.3 类和结构体的区别1.4 类的访问限定符与封装1.4.1 访问限定符1.4.2 类的作用域与类的实例化 1.5 类对象的模型1.5.1 类内部资源的存储方式1.5.3 类大小的计算方式 1.6 this…...

Docker 创建容器并指定时区
目录 1. 通过环境变量设置时区(推荐)2. 挂载宿主机的时区文件到容器中3. 总结 要在 Docker 容器中指定时区,可以通过两种方式来实现: 1. 通过环境变量设置时区(推荐) 在 Docker 运行时,可以通…...

springboot文件上传修改临时文件路径
1、配置:spring.servlet.multipart.location/data/tmp 2、代码 Configuration public class MultipartConfig {Value("${spring.servlet.multipart.location}")private String tmpLocation;Beanpublic MultipartConfigElement multipartConfigElement()…...

testvue-新增图表功能(教师那边-后续放到管理员那边)-src/main.js ,router/index.js
1.安装--然后在src/main.js中 导入 和 使用2修改:common/sidebar.vue ,page/ echarts.vue , router/index.js , src/main.js 3sidebar.vue <template><div class"sidebar"><el-menuclass"sidebar-el-menu":default-active&quo…...

[HackMyVM]Quick 2
kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…...

Mybatis-Plus实现Service封装
文章目录 5.1 MP封装Service介绍5.1.1 说明5.1.2 实现流程5.1.3 核心API介绍 5.2 MP封装Service快速入门5.2.1 定义服务扩展接口5.2.2 定义服务实现5.2.3 测试测试 5.3 MP封装Service实现CRUD操作 5.1 MP封装Service介绍 5.1.1 说明 MybatisPlus为了开发更加快捷,…...

平台工程指南:从架构构建到职责分工
平台工程只是 DevOps 专业化的另一个术语,还是另有所指?事实可能介于两者之间。DevOps 及其相关的 DevXOps 有着浓厚的文化色彩,以各个团队为中心。不幸的是,在许多地方,DevOps 引发了新的问题,如工具激增和…...

Docker系列之docker与docker-compose离线安装
docker离线安装 一、离线安装包二、安装命令三、配置四、docker-compose 一、离线安装包 上传离线安装包至/root/目录下,docker离线安装包下载链接。 二、安装命令 cd /root mkdir k8sOfflineSetup tar -xzvf k8sOfflineSetup-2020-02-20.tar.gz -C k8sOfflineSe…...

css flex 布局换行
默认使用display: flex;是不换行的,只需要加上flex-wrap: wrap;就行了,效果图 .app-center {display: flex;flex-wrap: wrap;justify-content:flex-start; } 通过上面我们发现虽然时间换行了,但是每行的边距不一样 加上这个就行了ÿ…...

使用腾讯云快速搭建WordPress网站流程详解
专栏系列文章: WordPress建站主题美化系列教程https://blog.csdn.net/seeker1994/category_12184577.html 一文搞懂WordPress是什么?为什么用它建站?怎么安装与部署? 初次安装WordPress后如何进行网站设置(主题安装、…...

JavaScript发展历史与JavaScript的版本发展
JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。它最初由Netscape公司的Brendan Eich设计,并于1995年在网景导航者浏览器上首次实现。由于Netscape与Sun合作,并希望其外观与Java相似,因此被命名为JavaScrip…...

零基础如何系统自学Python
零基础系统自学Python 学习前的准备 明确学习目标 Python 一共有两大版本,即 Python2 以及 Python3,Python2 已停止维护,强烈建议直接上手 Python3。Python 可以说是无所不能,主要有以下几大方向,建议选择自己感兴趣…...

华为OD机试 - 字符串统计(Java 2024 C卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&a…...

LeetCode-数组-前缀和-中等难度
前缀和 前缀和是一种利用预处理的方式来减少整体实现复杂度的方法。 基本定理 假设原数列A为:[1,2,3,4,5],与之对应的前缀和数列P则为:[1,3,6,10,15] 前缀和数列的第一项等于原数列的第一项,从第二项开始前缀和数列每一项计算…...

【程序人生】探索2024年AI辅助研发趋势
目录标题 探索2024年AI辅助研发趋势一、AI在编码中的应用智能代码生成助力开发错误检测与修复的即时反馈性能优化的智能建议 二、AI驱动的自动化工具三、AI与团队协作四、未来展望结语 探索2024年AI辅助研发趋势 随着人工智能技术的迅速发展,AI在各个领域的应用正日…...

集合框架(一)Collection
学习过了ArrayList,知道集合是一种容器,用来装数据的,类似于数组,但集合的大小可变,开发中也非常常用。 为了满足不同的业务场景需求Java还提供了很多不同特点的集合给我们选择。 集合体系结构 Collection是一个接口&a…...

Android 性能优化--APK加固(2)加密
文章目录 字符串加密图片加密如何避免应用被重新签名分发APK 加壳的方案简析DEX加密原理及实现 本文首发地址:https://h89.cn/archives/212.html 最新更新地址:https://gitee.com/chenjim/chenjimblog 通过 前文 介绍,我们知晓了如何使用代码…...

Linux环境下使用interrupt方式操作UART
目录 概述 1 Linux环境下UART设备 2 轮询方式操作UART功能实现 2.1 打开串口函数:usr_serial_open 2.2 关闭串口函数: usr_serial_close 2.3 发送数据函数: usr_serial_sendbytes 2.4 接收数据函数: usr_serial_readinterr…...

修改Android打包apk的名字和目录
app打包生成apk后通常需要进行备份,但是要区分好哪个apk是什么版本的、什么时候打包的,以方便以后区分使用。 最开始的想法是把版本号、创建时间这些加在apk文件名上即可,但是公司要求apk使用一个固定的名称,那我怎么保存版本号信…...

管理 PostgreSQL 中配置参数的各种方法
管理 PostgreSQL 中配置参数的各种方法 1. 概述 PostgreSQL提供了一个配置文件 postgresql.conf 让用户自定义参数。您可能需要更改一些参数来调整性能或在工作环境中部署 PostgreSQL 服务器。在这篇博文中,我们将探索管理这些参数的不同方法。 2. 以不同方式管理…...

Linux命令-continue命令(结束本次循环,继续执行下一个for,while或until循环。)
概要 continue [n]主要用途 结束本次循环,继续执行下一个for,while或until循环;可指定从第几层循环继续执行。 参数 n(可选):大于等于1的整数,用于指定从第几层循环继续执行。 返回值 返回…...