Python数字与字符串类型的核心特性及内置方法详解

沈亦白
沈亦白
发布时间:2026-10-11 | 3人浏览过
原创

本文深入解析Python中数字类型(整型、浮点型)与字符串类型的核心特性及常用内置方法。重点阐述不可变类型在值改变时ID随之变化的机制,并详细演示字符串的索引切片、strip去除指定字符、split分割、in成员运算及len求长度等高频操作,帮助开发者掌握Python基础数据类型的处理技巧。

数字类型的特性与转换

在Python中,整型(int)和浮点型(float)主要用于存储数值,如年龄、ID号或计算结果。整型本身没有特定的内置方法,主要依赖算术运算(加减乘除)和比较运算。无论是整型还是浮点型,它们都属于数字类型,且一旦创建,其值是不可变的。

整型转换规则

使用 int() 函数进行类型转换时,需遵循严格的规则:

  • 字符串转整型:若字符串仅包含数字字符(如 '10'),可成功转换为整数。
  • 浮点转整型:浮点数(如 10.1)转换为整型时,直接截断小数部分,结果为 10。
  • 非法字符串:若字符串包含小数点(如 '10.1'),直接调用 int() 会引发报错,因为Python无法直接将含小数的字符串解析为整型。
x = 10
x = int('10')
x = int(10.1)
x = int('10.1') # 报错

不可变类型的ID变化机制

理解Python中“不可变类型”的关键在于观察内存地址(ID)的变化。对于不可变类型(如整型、字符串),当变量的值发生改变时,Python会创建一个新的对象,导致变量的ID随之改变。

整型ID变化示例

x = 10
print(id(x))
x = 20
print(id(x))

上述代码中,x 从 10 变为 20,两次打印的 ID 不同,证明值改变时引用指向了新对象。

对比:可变类型的ID不变

作为对比,列表(list)是可变类型。修改列表中的元素,其内存地址(ID)保持不变:

lis = [1,2,3]
print(id(lis))
lis[0] = 2  # lis-->[2,2,3]
print(id(lis))

这一特性说明:不可变类型在值变化时,ID也会变;而可变类型在内容变化时,ID通常不变。

字符串类型的核心操作

字符串(str)用于存储文本信息,如姓名、地址等。字符串类型是有序的、不可变的,且支持哈希。定义字符串时,可使用单引号、双引号或三引号。

字符串编码与字节类型

在Python 3中,字符串默认是Unicode编码。若需处理二进制数据,可将其转换为字节类型(bytes):

s = 'sdkfljl'.encode('utf-8')  # 打印出来的bytes类型,二进制类型
print(s)
print('中文'.encode('utf-8'))

索引与切片

字符串支持通过索引取值和切片操作。切片语法为 [start:stop:step]:

  • 正向切片:步长 1 表示从左到右。
  • 反向切片:步长 -1 表示从右到左。
s = 'forever handsome'
print(s[1])
print(s[4:0:1]) # 1 表示从左到右
print(s[-4:0:-1])  # -1 表示从右到左

此外,可通过 for 循环遍历字符串中的每个字符:

for i in s:
    print(i)

字符串内置方法详解

Python提供了丰富的字符串内置方法,以下是常用操作的演示:

1. strip():去除两端字符

strip() 用于去除字符串两端的指定字符。若不传参,默认去除空白字符;若传入参数字符串,则去除两端所有出现在该字符串中的字符。

s1 = '       nick handsome     '
print(s1.strip())  # 去除两端的空白

s2 = '****!!!nick handsome-----***'
print(s2.strip('-*!'))  # 指定多个字符一起去掉,strip里面有的字符就全部干掉

2. split():字符串分割

split() 根据指定分隔符将字符串切割为列表。默认以空格为分隔符。

s = 'hello/world!test'
print(s.split()) # 默认以空格为切割条件 
print(s.split('/')) # 以/切割 
print(s.split('!')) # 以!切割

3. in 与 not in:成员运算

用于判断子串是否存在于原字符串中,返回布尔值。

s = 'forever handsome'
print('forever' in s ) # True 
print('!' not in s) # True

4. len():求长度

len() 返回字符串中字符的数量。

s = '123'
print(len(s)) # 3

字符串不可变性的验证

再次通过ID变化验证字符串的不可变性。对字符串进行拼接操作时,实际上是创建了一个新的字符串对象。

s2 = 'abc'
print(id(s2))
s2 += 'abc'
print(id(s2))

上述代码中,s2 拼接后ID发生变化,符合不可变类型的特征。

总结

掌握Python数字类型和字符串类型的特性,特别是不可变类型在值改变时ID随之变化的机制,有助于理解Python的内存管理模型。同时,熟练运用字符串的索引切片、strip、split、in/not in及len等内置方法,能显著提升数据处理效率。以上就是Python数字类型和字符串类型的内置方法的详细内容,更多关于Python基础教程的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表