当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2023-11-14 09:09:45 172观看
导读Python提供了一组丰富的内置数据类型,使您能够在程序中处理不同类型的数据。核心数值类型包括整数、浮点数和复数。整数表示整数,对于精确的计数和计算非常有用。浮点数表示具有小数精度的实数,这对科学和统计计算非常重

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

d4T28资讯网——每日最新资讯28at.com

浮点数表示具有小数精度的实数,这对科学和统计计算非常重要。复数将数字扩展到复平面,并在许多科学和数学应用中使用。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

数值类型

d4T28资讯网——每日最新资讯28at.com

Python中的数值数据类型允许您处理整数、浮点数和复数等数值数据。让我们逐一查看每种数值类型。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

1.Integer(int)

整数是整数,如-2、-1、0、1、2、3等。它们可以是正数、负数或0。在Python中,整数是不可变的。一些示例: d4T28资讯网——每日最新资讯28at.com

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

我们可以对整数执行数学操作,如加法、减法、乘法等。 d4T28资讯网——每日最新资讯28at.com

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

整数可以转换为其他类型,如浮点数、复数等。 d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

2.浮点数(float)

浮点数表示实数,如-1.5、-0.4、0.0、1.25、9.8等。它们包含小数点。在需要精度的科学和统计计算中非常有用。一些示例:d4T28资讯网——每日最新资讯28at.com

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

浮点数支持数学运算,如加法、减法等。d4T28资讯网——每日最新资讯28at.com

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

它们可以转换为其他类型,如int、complex等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

3.复数

复数以x + yj的形式书写,其中x是实部,y是虚部。它们在科学和数学应用中非常有用。d4T28资讯网——每日最新资讯28at.com

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

我们可以执行复数上的加法和乘法等操作。d4T28资讯网——每日最新资讯28at.com

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

它们可以转换为其他类型,如int、float等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

4.布尔类型

布尔类型表示逻辑值True和False。用于条件测试和逻辑。例如:d4T28资讯网——每日最新资讯28at.com

x = Truey = Falseprint(type(x)) # <class 'bool'>

可以使用布尔运算符如and、or、not来组合逻辑表达式和条件。d4T28资讯网——每日最新资讯28at.com

a = Trueb = Falseprint(a and b) # False print(a or b) # Trueprint(not a) # False

其他数据类型可以根据其真值转换为布尔值。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

序列类型

序列类型允许以有序的方式存储数据集合。让我们逐一了解它们:d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

1.字符串(str)

字符串表示Unicode字符的序列,如字母、数字、空格等。在Python中它们是不可变的。创建字符串的一些示例:d4T28资讯网——每日最新资讯28at.com

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

我们可以使用索引访问单个字符:d4T28资讯网——每日最新资讯28at.com

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

字符串支持操作,如连接、切片、长度等。d4T28资讯网——每日最新资讯28at.com

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

格式说明符如%s可用于格式化:d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

2.列表

列表是有序的值集合,可变(可修改)。允许存储不同的数据类型。d4T28资讯网——每日最新资讯28at.com

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

我们可以使用索引访问元素。列表是可变的。d4T28资讯网——每日最新资讯28at.com

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

列表支持操作,如连接、切片、长度等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

3.元组

元组是有序的值集合,不可变(无法修改)。允许存储不同的数据类型。d4T28资讯网——每日最新资讯28at.com

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

我们可以使用索引访问元素,但不能修改元组。d4T28资讯网——每日最新资讯28at.com

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

元组支持操作,如连接、切片、长度等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

4.Range

range 表示不可变的数字序列。通常用于循环遍历数字序列。d4T28资讯网——每日最新资讯28at.com

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

range 经常用于for循环中:d4T28资讯网——每日最新资讯28at.com

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

我们还可以创建具有开始、结束和步长的 range。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

集合类型

集合是无序的唯一值集合。它们支持成员测试、集合数学等操作。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

1.集合

集合仅包含唯一值。元素可以添加和删除。d4T28资讯网——每日最新资讯28at.com

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

集合元素可以进行成员测试、添加/删除。集合是可变的。d4T28资讯网——每日最新资讯28at.com

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

集合之间可以进行联合、交集等集合数学操作。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

2.不可变集合

不可变集合是Python集合的不可变变体。元素无法添加或删除。d4T28资讯网——每日最新资讯28at.com

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

不可变集合可用作字典键以及集合操作。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

映射类型

映射类型允许将数据存储为键-值对。字典是Python中的主要映射类型。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

字典

字典由键-值对组成,括在大括号{}中。用于存储相关数据。d4T28资讯网——每日最新资讯28at.com

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

可以通过键访问字典元素并进行修改。字典是可变的。d4T28资讯网——每日最新资讯28at.com

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

常见的字典操作包括长度、添加/删除键、迭代等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

二进制类型

Python中的二进制类型用于处理二进制数据,如字节、字节数组等。d4T28资讯网——每日最新资讯28at.com

d4T28资讯网——每日最新资讯28at.com

1.字节

字节表示不可变的字节序列。示例:d4T28资讯网——每日最新资讯28at.com

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

字节支持操作,如索引、长度、连接等,但是它们是不可变的。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

2.字节数组

字节数组表示可变的字节序列。它们可以在原地修改。d4T28资讯网——每日最新资讯28at.com

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

字节数组支持典型的序列操作,如索引、连接等。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

3.Memoryview

Memoryview对象允许直接访问支持缓冲区协议的对象的内部数据,而不需要复制。用于高级优化。d4T28资讯网——每日最新资讯28at.com

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

Memoryview支持切片和编辑,而不需要复制缓冲区。用于性能的高级用法。d4T28资讯网——每日最新资讯28at.com

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

d4T28资讯网——每日最新资讯28at.com

4.None Type

None类型表示缺少值。类似于其他语言中的null。d4T28资讯网——每日最新资讯28at.com

x = Noneprint(type(x)) # <class 'NoneType'>

None通常用作可选或缺失值的占位符。d4T28资讯网——每日最新资讯28at.com

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

运算符可以检查某些东西是否为None。d4T28资讯网——每日最新资讯28at.com

x = Noneprint(x is None) # True

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

d4T28资讯网——每日最新资讯28at.com

希望这个概述让您对Python中可用的不同数据类型有一个良好的理解,以及众多的代码示例展示了它们的用法。d4T28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-24303-0.html深入了解Python数据类型及应用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Angular 开发中避免使用 If-else 结构的优秀实践

下一篇: 还在使用 os.path?Python 中的 Pathlib 太香了

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 得物效率前端微应用推进过程与思考

    得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 学习JavaScript的10个理由...

    学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 如何使用JavaScript创建一只图像放大镜?

    如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • 电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会为了更好地让参展观众真正感受到智能家居的绝妙之处,海尔智家的程传岭先生同样介绍了展会上海尔智家的模拟500平大平层,还原生活空间沉浸式体验。程传
Top