深入了解Python数据类型及应用

news2025/1/13 17:47:58

Python提供了一组丰富的内置数据类型,使您能够在程序中处理不同类型的数据。核心数值类型包括整数、浮点数和复数。整数表示整数,对于精确的计数和计算非常有用。

浮点数表示具有小数精度的实数,这对科学和统计计算非常重要。复数将数字扩展到复平面,并在许多科学和数学应用中使用。

Python具有许多内置数据类型,使您能够以强大的方式存储和操作数据。选择适当的数据类型对于编写高效的Python代码非常重要。这份综合指南将通过代码示例详细介绍各种Python数据类型。

数值类型

Python中的数值数据类型允许您处理整数、浮点数和复数等数值数据。让我们逐一查看每种数值类型。

Integer(int)

整数是整数,如-2、-1、0、1、2、3等。它们可以是正数、负数或0。在Python中,整数是不可变的。一些示例: 

x = 10    # positive integer
y = -5    # negative integer 
print(type(x)) # <class 'int'>

我们可以对整数执行数学操作,如加法、减法、乘法等。 

a = 12
b = 4
print(a + b) # 16
print(a - b) # 8
print(a * b) # 48

整数可以转换为其他类型,如浮点数、复数等。 

num = 10
print(type(num)) # <class 'int'> 
num2 = float(num)
print(type(num2)) # <class 'float'>

浮点数(float)

浮点数表示实数,如-1.5、-0.4、0.0、1.25、9.8等。它们包含小数点。在需要精度的科学和统计计算中非常有用。一些示例:

a = 1.5
b = -0.4
print(type(a)) # <class 'float'>

浮点数支持数学运算,如加法、减法等。

x = 3.0
y = 5.5 
print(x + y) # 8.5
print(x - y) # -2.5 
print(x * y) # 16.5

它们可以转换为其他类型,如int、complex等。

a = 1.2
print(type(a)) # <class 'float'>
b = int(a) 
print(type(b)) # <class 'int'>

复数

复数以x + yj的形式书写,其中x是实部,y是虚部。它们在科学和数学应用中非常有用。

x = 5 + 3j
print(type(x)) # <class 'complex'>

我们可以执行复数上的加法和乘法等操作。

a = 2+3j
b = 5+4j
print(a + b) # 7+7j 
print(a * b) # -7+26j

它们可以转换为其他类型,如int、float等。

x = 5 + 3j
print(type(x)) # <class 'complex'>
y = float(x)
print(type(y)) # <class 'float'>

布尔类型

布尔类型表示逻辑值True和False。用于条件测试和逻辑。例如:

x = True
y = False
print(type(x)) # <class 'bool'>

可以使用布尔运算符如and、or、not来组合逻辑表达式和条件。

a = True
b = False
print(a and b) # False 
print(a or b) # True
print(not a) # False

其他数据类型可以根据其真值转换为布尔值。

x = 5
print(bool(x)) # True 
y = 0
print(bool(y)) # False

序列类型

序列类型允许以有序的方式存储数据集合。让我们逐一了解它们:

字符串(str)

字符串表示Unicode字符的序列,如字母、数字、空格等。在Python中它们是不可变的。创建字符串的一些示例:

s1 = 'Hello'
s2 = "World"
print(type(s1)) # <class 'str'>

我们可以使用索引访问单个字符:

s = 'python'
print(s[0]) # p
print(s[3]) # h

字符串支持操作,如连接、切片、长度等。

s1 = 'Hello'
s2 = 'World'
print(s1 + ' ' + s2) # Hello World
print(len(s1)) # 5

格式说明符如%s可用于格式化:

name = 'John'
print('My name is %s' % name) # My name is John

列表

列表是有序的值集合,可变(可修改)。允许存储不同的数据类型。

nums = [1, 2, 3]
fruits = ['apple', 'mango', 'banana']
print(type(nums)) # <class 'list'>

我们可以使用索引访问元素。列表是可变的。

nums[0] = 5 
print(nums) # [5, 2, 3]

列表支持操作,如连接、切片、长度等。

fruits = ['apple', 'banana', 'mango']
print(len(fruits)) # 3
print(fruits[1:]) # ['banana', 'mango']

元组

元组是有序的值集合,不可变(无法修改)。允许存储不同的数据类型。

point = (2, 3) # 括号不是必需的,但建议使用
colors = ('red', 'blue', 'green')
print(type(point)) # <class 'tuple'>

我们可以使用索引访问元素,但不能修改元组。

point[0] = 5 #错误:无法修改元组

元组支持操作,如连接、切片、长度等。

colors = ('red', 'blue', 'green')
print(len(colors)) # 3
print(colors[1:]) # ('blue', 'green')

Range

range 表示不可变的数字序列。通常用于循环遍历数字序列。

nums = range(5) # 0到4
print(list(nums)) # [0, 1, 2, 3, 4]

range 经常用于for循环中:

for i in range(3):
    print(i)
# 输出:
# 0
# 1
# 2

我们还可以创建具有开始、结束和步长的 range。

nums = range(3, 8, 2)
print(list(nums)) # [3, 5, 7]

集合类型

集合是无序的唯一值集合。它们支持成员测试、集合数学等操作。

集合

集合仅包含唯一值。元素可以添加和删除。

colors = {'red', 'blue', 'green'}
print(type(colors)) # <class 'set'>

集合元素可以进行成员测试、添加/删除。集合是可变的。

'red' in colors # True
colors.add('yellow')
colors.remove('blue')

集合之间可以进行联合、交集等集合数学操作。

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # {1, 2, 3, 4, 5}
print(set1 & set2) # {3}

不可变集合

不可变集合是Python集合的不可变变体。元素无法添加或删除。

colors = frozenset(['red', 'blue', 'green'])
print(type(colors)) # <class 'frozenset'>
colors.add('yellow') # AttributeError

不可变集合可用作字典键以及集合操作。

映射类型

映射类型允许将数据存储为键-值对。字典是Python中的主要映射类型。

字典

字典由键-值对组成,括在大括号{}中。用于存储相关数据。

student = {
    'name': 'John',
    'age': 20,
    'courses': ['Math', 'Science']
}
print(type(student)) # <class 'dict'>

可以通过键访问字典元素并进行修改。字典是可变的。

student['name'] = 'Mark' # 更新值
print(student['courses']) # ['Math', 'Science']

常见的字典操作包括长度、添加/删除键、迭代等。

print(len(student)) # 3
student['email'] = 'john@example.com' # 添加键值
for key in student:
    print(key, student[key]) # 打印每个项

二进制类型

Python中的二进制类型用于处理二进制数据,如字节、字节数组等。

字节

字节表示不可变的字节序列。示例:

data = b'hello'
print(type(data)) # <class 'bytes'>

字节支持操作,如索引、长度、连接等,但是它们是不可变的。

print(data[0]) # 104
print(len(data)) # 5
data2 = data + b'world' # 无法修改,只能连接

字节数组

字节数组表示可变的字节序列。它们可以在原地修改。

data = bytearray(b'hello')
print(type(data)) # <class 'bytearray'>
data[0] = 106 # 可变的

字节数组支持典型的序列操作,如索引、连接等。

print(data[0]) # 106
data2 = data + bytearray(b'world')

Memoryview

Memoryview对象允许直接访问支持缓冲区协议的对象的内部数据,而不需要复制。用于高级优化。

data = memoryview(b'hello')
print(data[0]) # 104

Memoryview支持切片和编辑,而不需要复制缓冲区。用于性能的高级用法。

data[1:4] = b'i' # 在原地编辑
print(data) # b'hiello'

None Type

None类型表示缺少值。类似于其他语言中的null。

x = None
print(type(x)) # <class 'NoneType'>

None通常用作可选或缺失值的占位符。

def print_if_not_none(x):
    if x is None:
        print('x is None')
    else:
        print(x)

运算符可以检查某些东西是否为None。

x = None
print(x is None) # True

总之,Python配备了多种内置数据类型,包括数值、文本、集合、映射等等。选择适当的数据类型有助于高效使用内存和提高性能。操作数据类型是Python编程的一个重要部分。

希望这个概述让您对Python中可用的不同数据类型有一个良好的理解,以及众多的代码示例展示了它们的用法。

·  END  ·

HAPPY LIFE

7937e6b02f33990d6583a6a939feda40.png

本文仅供学习交流使用,如有侵权请联系作者删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1016740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++系列赋值运算符重载

赋值运算符重载 类的默认函数拷贝构造函数和赋值运算符 重载赋值运算符相关注意事项 类的默认函数 一个类至少有4个默认函数&#xff1a; 默认构造函数拷贝构造函数析构函数赋值运算符重载函数 拷贝构造函数和赋值运算符 拷贝构造函数是在创建类的时候调用的&#xff0c;之…

利用PCA科学确定各个指标的权重系数

背景参考: 1、提取主成分 对样本进行PCA分析,查看不同变量贡献率,确定主要的指标。我们可以通过下列代码获取需要的所有数据: import numpy as np from sklearn.decomposition import PCA# 创建一个数据 np.random.seed(0) data = np.random.random((100,5)) y = np.ra…

深入理解CI/CD流程:改变你的开发生命周期

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

投后管理系统的主要功能及开发

投后管理系统是一种用于跟踪和管理投资组合中的投资的工具&#xff0c;通常由私募股权、风险投资公司、资产管理公司和投资者使用。其主要功能包括以下内容&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…

全新跑分软件GeekRUN-7问世

实测非常好用CPU跑分神器点击下载 感兴趣的可以测测你的手机跑的多少。 我的峰值是7340&#xff0c;低值是4685&#xff0c;测试时后台不能有任何APP

丙烯酸共聚聚氯乙烯树脂

声明 本文是学习GB-T 42790-2023 丙烯酸共聚聚氯乙烯树脂. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了丙烯酸共聚聚氯乙烯树脂的外观、物化性能等技术要求&#xff0c;描述了相应的采样、试验方 法、检验规则、标志、包装、…

2023年中国场馆产业研究报告

第一章 行业综述 1.1 定义与分类 场馆&#xff0c;作为一个多元化和充满活力的行业&#xff0c;为人们提供了一个为不同目的而聚集的空间。无论是为了活动、表演、展览还是聚会&#xff0c;场馆都在为社区的社会、文化和经济建设做出了不可或缺的贡献。 场馆是一个为举办各类…

深入思考redis面经

1 redission分布式锁 1.1 为了保证数据一致性&#xff0c;引入了redission的锁&#xff0c;你是为了抗住高并发而去为了引入这个锁还是说为了保证数据一致性去引入的 答&#xff1a;主要是为了抗住高并发问题&#xff0c;解决redis的缓存击穿问题&#xff0c;但是也能解决一定…

【算法|链表】环形链表Ⅱ

环形链表Ⅱ 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…

原创 VTK 基础入门 ( 一 ) 贴纹理

纹理 这个示例先读入一幅JPEG的二维纹理图;然后定义一个纹理类vtkTexture对象&#xff0c;接着把读入的NPG图像输入到vtkTexture 里&#xff0c; 作为它即将“贴”到平面上的一个纹理图;再定义一个vtkPlaneSource对象&#xff0c;类vtkPlaneSource 可以生成一个…

Pytorch学习:torch.max(input,dim,keepdim=False)

文章目录 torch.max()dimkeepdimdim0dim1 out&#xff1a;返回命名元组 (values, indices) torch.max() torch.max(input) → Tensor&#xff1a;返回 input 张量中所有元素的最大值。 注意输入的必须是张量形式&#xff0c;输出的也为张量形式 当输入为tuple类型时&#xf…

Attention is all you need 论文笔记

该论文引入Transformer&#xff0c;主要核心是自注意力机制&#xff0c;自注意力&#xff08;Self-Attention&#xff09;机制是一种可以考虑输入序列中所有位置信息的机制。 RNN介绍 引入RNN为了更好的处理序列信息&#xff0c;比如我 吃 苹果&#xff0c;前后的输入之间是有…

计算机组成原理之计算机系统概论、计算机的发展史、系统总线,三章开篇讲

第一章-计算机系统概论 1计算机系统简介 现代计算机的多态性 把感应器嵌入和装备到电网、铁道、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中&#xff0c;并且被普遍连接&#xff0c;形成“物联网”&#xff0c;然后将“物联网”与现有的网络整合起来&…

无涯教程-JavaScript - ACOT函数

描述 ACOT函数以0至π之间的弧度(以弧度为单位)返回数的反正切或反余切的主值。 语法 ACOT (number)争论 Argument描述Required/OptionalNumberNumber is the cotangent of the angle you want. This must be a real number.Required Notes 要将输出从弧度转换为度, 使用D…

【计算机视觉 | 目标检测】YOLO-NAS的介绍以及如何使用?(含源代码)

文章目录 一、介绍1.1 亮点1.2 方案简介1.3 训练简介 二、使用案例 一、介绍 Github 仓库&#xff1a; https://github.com/Deci-AI/super-gradients/blob/master/YOLONAS.md1.1 亮点 参考QARepVGG&#xff0c;该方案引入了QSP与QCI模块以同时利用重参数与8-bit量化的优化&a…

C语言练习题解析(2)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言刷题专栏&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐ 文…

d3dx9_43.dll文件缺失的修复方法有哪些?4个方法快速修复d3dx9_43.dll

最近有很多小伙伴反映说他的电脑经常出现一个问题&#xff0c;那就是d3dx9_43.dll文件缺失了&#xff0c;然后一些程序都打不开&#xff0c;他们都是一脸懵逼&#xff0c;不知道怎么去处理这个问题&#xff0c;今天小编就要来给大家详细的说说这方面&#xff0c;d3dx9_43.dll文…

小谈设计模式(3)—策略模式

小谈设计模式&#xff08;3&#xff09;—策略模式 专栏介绍专栏地址专栏介绍 策略模式主要角色环境&#xff08;Context&#xff09;抽象策略&#xff08;Strategy&#xff09;具体策略&#xff08;Concrete Strategy&#xff09;角色总结 核心思想封装算法定义抽象策略使用环…

Minio入门系列【3】MinIO Client使用详解

1 简介 简称mc&#xff0c;是minio服务器的客户端&#xff0c;对ls&#xff0c;cat&#xff0c;cp&#xff0c;mirror&#xff0c;diff&#xff0c;find等UNIX命令提供了一种替代方案&#xff0c;它支持文件系统和兼容Amazon S3的云存储服务&#xff08;AWS Signature v2和v4&…

nginx知识点详解:反向代理+负载均衡+动静分离+高可用集群

一、nginx基本概念 1. nginx是什么&#xff0c;做什么事情&#xff1f; Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强。Nginx转为性能优化而开发&#xff0c;能经受高负载考验。支持热部署&#xff0c;启动容易&#xff0c;运…