第四部分:python对象类型(数值、字符串篇)

python中的一切都是对象,包括数据;而在python中对象无非是内存的一部分,包含数值和相关操作的集合。对一个具体的python程序,可以分成模块、语句、表达式以及对象:

  • 程序由模块构成;
  • 模块包含语句;
  • 语句包含表达式;
  • 表达式创建并处理对象。

python的核心数据类型包括:数字 、字符串、列表、字典、元组、文件、集合以及其他核心类型。而在python中没有类型声明,运行的表达式的语法决定了创建和使用的对象的类型。同样的,一旦创建了一个对象 ,它就和操作集合绑定了,你只能对字符串使用字符串相关的操作,对列表进行列表相关的操作,即python是动态类型的,它自动跟踪你的类型而不是要求声明代码;同样python也是强类型语言,你只能对一个对象进行适合该类型的有效操作。

数字

python 的核心数据类型包括常规的类型:整数、浮点数、和更少见的类型(有虚部的复数、固定精度的十进制数字等);也 支持一般的数学运算。而且,python3.的整数类型在需要的时候会自动提供额外的精度,用于较大的数值。
在这里插入图片描述
除了表达式外,随python一起安装的还有一些常用的数学模块如math模块、random模块等
在这里插入图片描述

字符串

从严格意义上说,字符串是由单字符串所组成的序列,其他更一般的序列还包括列表和元组。序列中的元素包含了一个从左到右的顺序–序列中的元素根据他们的相对位置进行储存和读取。
因此,对字符串可以进行序列的相关操作,如通过元素的位置索引得到其各个元,而且 还能够反向索引:
在这里插入图片描述
此外,python的变量不需要提前声明。当给一个变量赋值的时候就创建了它,可能赋的是任何类型的对象,并且当变量出现在一个表达式中的时候,就会用其值替换它。
除了简单的耳聪位置进行索引,字符串还支持分片(slice)操作,即S[i:j],取出从i到j 的内容(包括i但不包括j)
最后,作为序列,字符串也支持使用加号进行拼接(concatenation)或者重复
在这里插入图片描述
可以看出,+对于不同的对象也有不同的意义:对于数字表示加法;对于字符串表示拼接。这也是python的一般特性*:一个操作的意义取决于被操作的对象,由于类型不受约束,python编写的操作通常可以自动地适用于不同类型的对象,只要他们支持一种兼容的接口*。这也是python中的重要概念。

> 不可变性:
对字符串的操作都被定义为生成新的字符串作为结果,因为字符串在python中具有不可变性——在创建后不能原位置进行改变,即永远不能覆盖不可变对象的值。例如,不能通过对其某一位置进行赋值而改变字符串,但可以建立一个新的字符串并以同一个变量名对其进行赋值。因为python在运行过程中会清理旧的对象。
在这里插入图片描述
python中的每一个对象都可归类为不可变的或者可变的。在核心类型中,数字、字符串和元组是不可变得,列表、字典和集合是可变的。
严格来说,是可以在原位置改变基于文本的数据。这需要将它扩展成一个由独立字符构成的列表,任何不加入其他字符再将它重新拼接起来。或者使用bytearray类型。
在这里插入图片描述
特定类型的方法
之前介绍的操作其实都是针对序列的操作,因此,除了字符串,其他的序列类型(如列表、元组)上,这些操作也是可以使用的 。而除了之前介绍的操作,针对字符串这一特殊的数据类型,也有其特有的作为方法存在的操作。方法指的是依赖并作用于对象上的函数,并通过一个表达式调用。
在这里插入图片描述
需要注意的是,方法处理后并不会改变原字符串的内容,而是仅仅会创造出一个新的字符串;除此之外,python遵循从左到右的执行顺序,每一次前一步方法调用完成,都会为后一步的方法的调用提供一个临时对象。
此外,字符串还支持一种“格式化”的方法,格式化的形式丰富,会在后续有详细介绍。
注:序列操作是通用的,往往通过内置函数或者表达式的形式出现。字符串的方法则仅仅适用于字符串。这种针对特定类型的操作则是通过方法调用 的方式出现的。

寻找帮助
可以通过dir函数来寻找对象的所有属性,其中方法作为函数属性,也会出现在返回结果中
在这里插入图片描述
上述列表中前后有下滑线的部分代表了字符串对象的实现方式,并支持定制,这部分会在会面关于类的部分详细介绍。而列表中没有下划线的属性则是字符串可以调用的方法。
dir调出了对象可以使用的方法名称,如果需要知道它们是做什么的,可以使用help函数。
在这里插入图片描述
字符串编程的其它方式
python提供了各种编写字符串的方法,包括反斜线转义序列表示特殊的字符。
在这里插入图片描述
在这里插入图片描述
python也允许字符串包括在单引号或者双引号中,两者是相同的,而采用不同的引号可以让另一种引号被包含在其中,而使用三引号可以包含多行的字符串字面量。
python也支持原始(raw)字符串字面量,即去掉反斜线转义机制。这样的字符串字面量是以字母’m‘开头。对Windows下的文件路径表示十分有用。

Unicode字符串
不同版本的python对Unicode支持不同,3.X版本中,基本的str字符串类型也能处理Unicode,并用一种特殊的bytes字符串类型表示原始字节值。
在这里插入图片描述
模式匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值