详解 Python 中的字符串
发布日期:2021-05-19 18:33:23 浏览次数:13 分类:精选文章

本文共 3873 字,大约阅读时间需要 12 分钟。

Python 字符串操作指南

目录

4.1 创建字符串

字符串是 Python 中的基本数据类型,用于存储和操作文本或其他字符。字符串可以用单引号或双引号括起来,例如:

name = "tom"  # 或 name = 'tom'mychar = 'a'

也可以通过以下方法创建字符串:

  • str() 创建一个空字符串
  • str("newstring") 创建一个包含 "newstring" 的字符串

示例:

name1 = str()  # 创建一个空字符串name2 = str("newstring")  # 创建一个新字符串

4.2 字符串的不可变性

在 Python 中,字符串是不可变的。这意味着一旦一个字符串创建完成,它的内容无法更改。例如:

s = 'string'print(len(s))    # 输出:6print(s[0])      # 输出:'s'# s[0] = 'another s'  # 会导致错误:'str'对象不支持下标赋值

虽然字符串是不可变的,但可以通过以下方式创建新字符串:

str1 = 'welcome'str2 = 'welcome'

通过 id() 函数可以发现,两个变量实际上引用的是同一个字符串对象。但如果对其内容进行操作(例如 str1 += ' yangjh'),则会创建一个新字符串。


4.3 字符串操作

字符串操作包括访问字符、连接字符串、提取子串和查找子串。以下是常用的操作:

  • 索引:字符串索引从 0 开始,支持正向和逆向访问。

    name = 'yangjh'print(name[0])     # 输出:'y'print(name[-1])    # 输出:'h'
  • 运算符:使用 + 连接字符串,使用 * 重复字符串。

    s = "tom and " + "jerry"print(s)             # 输出:'tom and jerry's = "love " * 3print(s)             # 输出:'love love love'
  • 分片:使用 [] 操作符提取子串。

    s = 'Welcome'print(s[1:3])       # 输出:'el'print(s[:6])        # 输出:'Welcome'print(s[4:])        # 输出:'ome'print(s[1:-1])     # 输出:'elc'

4.4 字符串分片

字符串分片可以通过指定开始和结束索引来提取子串:

  • s[start:end] 返回从 start 索引(含)到 end 索引(不含)之间的子串。
    s = 'Welcome to Python'print(s[5:10])    # 输出:'to 'print(s[:5])       # 输出:'Welcome'print(s[10:])     # 输出:'Python'

4.5 in 和 not in 操作符

in 和 not in 操作符用于检查字符串中是否存在某个字符或子串。

s1 = "Welcome to Python"print("come" in s1)        # 输出:Trueprint("come" not in s1)     # 输出:False

4.6 字符串对象的方法

字符串对象提供了多种内置方法来操作和分析字符串内容:

  • 常用方法示例:
    s = "welcome to python"print(len(s))         # 输出:16print(max(s))        # 输出:'t'print(min(s))        # 输出:' '

4.7 比较字符串

Python 支持对字符串进行逐字符比较,使用 <><=>===!= 运算符比较两个字符串。

示例:

print("tim" == "tie")       # 输出:Falseprint("free" != "freedom")   # 输出:Trueprint("arrow" > "aron")     # 输出:Trueprint("green" >= "glow")    # 输出:Trueprint("green" < "glow")     # 输出:Falseprint("ab" <= "abc")        # 输出:True

4.8 遍历字符串

字符串可以看作是一个序列,支持通过循环遍历访问每个字符。

s = "yangjh"for i in s:    print(i, end="")print()  # 输出:yangjh

4.9 字符串内容检验

字符串提供了多种方法来判断字符串的性质:

  • 示例:
    s = "welcome to python"print(s.isalnum())       # 输出:Falseprint("Welcome".isalpha())  # 输出:Trueprint("2012".isdigit())    # 输出:Trueprint("first Number".isidentifier())  # 输出:Falseprint("Welcome".islower())     # 输出:Trueprint("WELCOME".isupper())     # 输出:Trueprint(" \t".isspace())       # 输出:True

4.10 在字符串内查找和替换

字符串支持 find()replace() 方法:

  • find() 返回首次出现指定子串的索引。
    print(s.find('in'))  # 输出:4print(s.replace('g', 'gs'))  # 替换后 s 变为 " Mig singh"

4.11 设置字符串的格式

使用 format() 方法可以按格式设置字符串内容。

  • 示例:
    format = "Hello, %s. %s enough for ya?"values = ('world', 'Hot')print(format % values)  # 输出:"Hello, world. Hot enough for ya?"

4.12 替换字段名

format() 方法还支持通过名称或索引指定替换字段。

  • 示例:
    print("{foo} {} {bar} {}".format(1, 2, bar=4, foo=3))  # 输出:"3 1 4 2"print("{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3))  # 输出:"3 2 4 1"

4.13 宽度、精度和千位分隔符

使用格式说明符可以设置字符串的宽度和精度。

  • 示例:
    print("{num:10}".format(num=3))        # 输出:"    3"print("{name:10}".format(name="Bob "))  # 输出:"Bob  "print("{:.5}".format("Guido van Rossum"))  # 输出:"G"

4.14 符号、对齐和用 0 填充

格式说明符还可以设置符号、对齐和填充方式。

  • 示例:
    print("{:010.2f}".format(pi))     # 输出:"0000003.14"print("{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}".format(pi))  # 输出:  3.14        3.14        3.14

4.15 join 方法

join 方法用于将列表中的元素合并成一个字符串。

seq = [1, 2, 3, 4, 5]sep = '+'sep.join(seq)      # 会报错,因为 int 不是字符串

示例正确使用:

seq = ['1', '2', '3', '4', '5']print('+'.join(seq))  # 输出:"1+2+3+4+5"

4.16 split 方法

split 方法用于将字符串拆分成列表。

s = '1+2+3+4+5'.split('+')  # 输出:['1', '2', '3', '4', '5']

如果没有指定分隔符,默认在空白字符处拆分。

print("Using the default".split())  # 输出:['Using', 'the', 'default']

下一步

通过以上内容,你应该已经掌握了 Python 字符串的基本操作。如果需要更深入的学习,可以继续探索更多字符串方法和功能,或者参考官方文档和实战练习。

上一篇:详解 Python 中的列表(List)类型
下一篇:详解 Python 中的序列

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年05月05日 09时06分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章