Python3 字符串

引号与转义

单引号 '...' 与双引号 "..." 等价;三引号可以跨行书写,常用于多行文本;特殊字符需要用反斜杠转义:

s1 = 'hello'
s2 = "world"
s3 = """第一行
第二行"""
print(s1, s2)            # 输出:hello world
print(s3)                # 输出两行文本
print('他说:"你好"')      # 输出:他说:"你好"

常用转义符:

转义符含义转义符含义
\n换行\t制表符
\反斜杠"双引号
'单引号\r回车

索引与切片

下标从 0 开始,负数表示从尾部倒数;切片 s[start:stop:step] 含头不含尾

s = "python"
print(s[0], s[-1])      # 输出:p n,-1 表示最后一个字符
print(s[0:3])           # 输出:pyt,取下标 0~2
print(s[1:5:2])         # 输出:yh,步长为 2
print(s[::-1])          # 输出:nohtyp,负步长实现反转

不可变性

字符串一旦创建就不可修改,所有"改动"其实都返回新字符串,原字符串保持不变:

s = "abc"
# s[0] = "x"     # 报错:TypeError,字符串不能按索引赋值
print(s.upper())    # 输出:ABC,upper 返回新字符串
print(s)            # 输出:abc,原字符串不变

常用方法

大小写、去空白、分割、连接、查找、替换等常用方法一应俱全:

print("Hello".upper(), "hello".lower())    # 输出:HELLO hello
print("  hi  ".strip())                    # 输出:hi,去除两端空白
print("a,b,c".split(","))                  # 输出:['a', 'b', 'c']
print("-".join(["2024", "01", "01"]))      # 输出:2024-01-01
print("banana".find("na"))                 # 输出:2,找不到返回 -1
print("banana".count("na"))                # 输出:2,子串出现次数
print("Hello".startswith("He"))            # 输出:True
print("I love Python".replace("Python", "Java"))   # 输出:I love Java

拼接、重复与长度

用 + 拼接、* 重复,len() 返回字符个数:

print("Py" + "thon")    # 输出:Python
print("ab" * 3)         # 输出:ababab
print(len("hello"))     # 输出:5
print(len("中文"))       # 输出:2,中文字符也按 1 个字符计

格式化:%、format 与 f-string

三种主流写法,推荐最简洁直观的 f-string(Python 3.6+):

name, age, score = "Tom", 18, 92.5
print("%s 今年 %d 岁" % (name, age))        # % 占位符
print("{} 今年 {} 岁".format(name, age))    # format 方法
print(f"{name} 今年 {age} 岁,得分 {score}")  # f-string
# 三行输出分别为:Tom 今年 18 岁 / Tom 今年 18 岁 / Tom 今年 18 岁,得分 92.5

f-string 的花括号里可以直接写表达式与格式控制:

print(f"3 × 7 = {3 * 7}")    # 输出:3 × 7 = 21
print(f"{92.5:.1f}")         # 输出:92.5,控制小数位数

字符串是 Python 中使用最频繁的类型:会引号与转义、索引切片、常用方法,再配合 f-string 格式化,即可胜任绝大多数文本处理任务。

笔记加载中…