Python 的数据类型与操作

一、常用内置类型(Built - in Types)

Python 拥有多种内置数据类型,这些类型满足了各种编程需求,从简单的数据存储到复杂的数据结构表示。

1. 数值类型(Numeric Types)

整数(int) :整数在 Python 中可以表示任意大小的整数值,不受特定字节数的限制。例如,x = 10就定义了一个简单的整数变量。整数可用于计数、索引等多种场景。

浮点数(float) :用于表示带有小数点的数字,采用 IEEE 754 双精度浮点数格式。如y = 3.14。浮点数在科学计算、金融计算等需要处理小数的场景中非常有用。

复数(complex) :以a + bj的形式表示,其中a为实部,b为虚部,j表示虚数单位。例如,z = 2 + 3j。复数在数学和工程领域的特定计算中发挥作用。

2. 序列类型(Sequence Types)

列表(list) :列表是一种可变的有序序列,可以包含不同类型的元素。例如,my_list = [1, 'hello', True]。通过索引可以访问列表中的元素,并且可以对列表进行修改、添加或删除元素等操作。

元组(tuple) :元组是不可变的有序序列,与列表类似,但一旦创建就不能修改。如my_tuple = (1, 'world', False)。元组常用于表示固定结构的数据,如函数返回多个值时。

字符串(string) :字符串是由字符组成的不可变序列。在 Python 中,字符串可以使用单引号、双引号或三引号(用于多行字符串)来表示。例如,s = "Python is great"。字符串支持多种操作,如切片、连接、查找等。

3. 映射类型(Mapping Types)

字典(dictionary) :字典是一种无序的键 - 值对数据结构,其中键必须是唯一的。例如,my_dict = {'name': 'John', 'age': 25}。通过键可以快速查找对应的值,常用于存储和查询相关联的数据。

4. 集合类型(Set Types)

集合(set) :集合是无序的、不包含重复元素的数据结构。例如,my_set = {1, 2, 3}。集合支持交集、并集、差集等操作,可用于数据去重、元素关系判断等场景。

5. 布尔类型(Boolean Type)

布尔类型只有两个值:TrueFalse。它在条件判断、逻辑运算中起着关键作用。例如,x = 5; y = 10; result = x < y,这里result的值为True

二、常用内置常数(Built - in Constants)

Python 提供了一些内置常数,这些常数在编程过程中具有特殊的意义和用途。

None :表示空值或者缺失值。在函数没有明确返回值时,默认返回None。例如,一个函数只是执行一些操作而不需要返回特定结果时,可以使用None

TrueFalse :这是布尔类型的两个值,在逻辑判断中使用。例如,在if语句中判断条件的真假。

Ellipsis...:这个常数在特定的语法结构中有特殊用途,比如在定义多维数组时可以作为占位符。

三、常用内置运算符(Built - in Operators)

1. 算术运算符

加法(+ :用于数值相加,也可用于字符串连接和列表、元组等序列的连接。例如,2 + 3得到5"hello" + "world"得到"helloworld"

减法(- :用于数值相减。如5 - 2得到3

乘法(* :对于数值是乘法运算,对于字符串和序列可以实现重复操作。例如,3 * 4得到12"a" * 3得到"aaa"

除法(/ :执行浮点数除法,结果总是浮点数。例如,5 / 2得到2.5

2. 比较运算符

等于(== :判断两个值是否相等。例如,2 == 2返回True"hello" == "world"返回False

不等于(!=:判断两个值是否不相等。

大于(>)、小于(<)、大于等于(>=)、小于等于(<=:用于比较数值的大小关系,也可以用于比较字符串按照字典序的大小关系。

3. 逻辑运算符

与(and :当两个操作数都为True时,结果为True;否则为False。例如,True and False得到False

或(or :只要有一个操作数为True,结果就为True。例如,True or False得到True

非(not :对操作数取反,not True得到Falsenot False得到True

四、整除(Integer Division (//))

整除运算符//用于计算两个数相除并向下取整得到整数结果。例如,7 // 3得到2-7 // 3得到-3。整除在处理需要得到整数部分结果的场景中非常有用,比如计算将一定数量的物品平均分配到若干个容器中时,每个容器能得到的物品数量。与普通除法(/)不同,//操作更关注整数部分的结果,并且在处理负数时遵循向下取整的规则。

五、模运算或余数运算符(%

模运算(%)用于计算两个数相除的余数。例如,7 % 3得到110 % 2得到0。在很多实际应用中都非常有用,比如判断一个数是否能被另一个数整除(余数为 0 时表示能整除),或者在循环队列、哈希表等数据结构中确定索引位置等场景。例如,在一个长度为n的循环队列中,如果当前位置为pos,要向前移动m个位置,可以通过(pos + m) % n来计算新的位置。

六、类型影响语义(Types Affect Semantics)

在 Python 中,数据类型对操作的语义有着重要的影响。

数值类型:不同的数值类型之间进行操作时,可能会发生类型转换。例如,整数和浮点数进行算术运算时,整数会自动转换为浮点数,然后进行计算。这确保了计算结果的准确性和一致性。

序列类型 :对于列表、元组等序列类型,虽然它们有一些相似的操作(如索引、切片),但由于列表是可变的而元组是不可变的,在对它们进行修改操作时语义完全不同。对列表可以使用诸如appendpop等方法来改变列表的内容,但这些操作在元组上是不允许的。

布尔类型与其他类型 :布尔类型在逻辑运算中的语义是明确的,但当与其他类型进行操作时,也会遵循一定的规则。例如,在条件判断中,很多数据类型都可以被转换为布尔值,非零数值、非空字符串、非空列表等都被视为True,而0""[]等被视为False

七、运算符优先级(Operator Order)

Python 中的运算符有明确的优先级顺序。当一个表达式中包含多个不同类型的运算符时,按照优先级顺序进行计算。

括号优先级最高 :可以使用括号来改变运算顺序,括号内的表达式先进行计算。例如,(2 + 3) * 4,先计算2 + 3得到5,然后再乘以4得到20

算术运算符优先级 :先乘除后加减。例如,2 + 3 * 4,先计算3 * 4 = 12,然后再加上2得到14。其中,幂运算(**)优先级高于乘除运算。

比较运算符优先级低于算术运算符 :例如,2 + 3 > 4,先计算2 + 3 = 5,然后再比较5 > 4得到True

逻辑运算符优先级not的优先级最高,然后是and,最后是or。例如,True or False and not True,先计算not True得到False,然后False and False得到False,最后True or False得到True

八、短路求值(Short - Circuit Evaluation)

短路求值是逻辑运算符andor的一个重要特性。

and的短路求值 :当使用and连接两个表达式时,如果第一个表达式为False,则不会再计算第二个表达式,因为整个表达式必然为False。例如,False and some_function(),这里some_function()不会被调用。

or的短路求值 :当使用or连接两个表达式时,如果第一个表达式为True,则不会再计算第二个表达式,因为整个表达式已经为True。例如,True or some_function()some_function()不会被调用。这种特性在编写条件判断和优化代码性能时非常有用,可以避免不必要的计算。

Python 的数据类型和操作是其编程的基础,深入理解这些概念对于编写高效、准确的 Python 程序至关重要。

相关推荐
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python
这里有鱼汤1 天前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook2 天前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室2 天前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三2 天前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试