当前位置:首页>python>Python 字符串完整精讲

Python 字符串完整精讲

  • 2026-10-11 08:35:25
Python 字符串完整精讲

一、字符串基础 & 转义字符

1. 字符串定义

使用单引号、双引号、三引号包裹

s1 = 'Python'
s2 = "Python"
s3 = """多行
文本"""

2. 常用转义字符

以 \ 开头,用来表示特殊字符

转义字符
作用
\n
换行
\t
水平制表符(空格缩进)
\\
输出反斜杠 \
\'
输出单引号
\"
输出双引号

示例:

print("Hello\nPython")
print("姓名\t年龄")
print("文件路径:C:\\Users\\Desktop")

3. 原始字符串 r''

作用:取消转义,原样输出内容,路径、正则高频使用

# 普通字符串:\ 会转义
path = "C:\new\test"

# 原始字符串 r''
path = r"C:\new\test"
print(path)

核心口诀:加 r 不转义,写路径最方便


二、字符串三大格式化

1. % 老式格式化(占位符)

常用占位符

  • • %s 字符串
  • • %d 整数
  • • %f 浮点数

语法

变量 = "内容%s 数字%d 小数%f" % (字符串, 整数, 小数)

示例:

name = "小明"
age = 18
score = 95.5

res = "姓名:%s,年龄:%d,分数:%.2f" % (name, age, score)
print(res)
  • • %.2f 保留2位小数

2. format() 格式化(推荐、通用)

用法1:按顺序传参

res = "姓名:{},年龄:{}".format("小红", 20)

用法2:下标取值

res = "{0} 今年 {1} 岁,{0} 很棒".format("小刚", 19)

用法3:关键字传参

res = "姓名:{name},年龄:{age}".format(name="小李", age=21)

用法4:精度、对齐

# 保留2位小数
print("成绩:{:.2f}".format(88.956))

3. f-string 格式化(Python3.6+ 最简最强)

语法

字符串前加 f/F,{变量/表达式} 直接嵌入

name = "小白"
age = 17
res = f"姓名:{name},明年年龄:{age + 1}"
print(res)

格式控制

score = 79.666
print(f"分数:{score:.2f}")

✅ 优先级:f-string > format > %


三、字符串常用内置方法(重点必背)

所有字符串方法不会修改原字符串,只会返回新字符串
字符串是不可变类型

1. 大小写转换

upper() 全部大写

s = "python"
print(s.upper())  # PYTHON

lower() 全部小写

s = "PYTHON"
print(s.lower())  # python

2. 去除首尾空格

strip() 去除首尾空白(空格、换行、制表符)

s = "  hello  "
print(s.strip())  # hello
  • • lstrip() 只去左边
  • • rstrip() 只去右边

3. 分割与拼接

split() 字符串分割 → 返回列表

默认以空格分割,可指定分隔符

s = "苹果,香蕉,橘子"
lst = s.split(",")
print(lst)  # ['苹果','香蕉','橘子']

join() 序列拼接为字符串

语法:分隔符.join(可迭代对象)

lst = ["2026","04","26"]
res = "-".join(lst)
print(res)  # 2026-04-26

4. 替换内容

replace(旧内容, 新内容, 次数)

s = "你好 Python Python"
res = s.replace("Python", "Java")
print(res)

5. 查找操作

find() 查找下标

  • • 找到返回起始索引
  • • 找不到返回 -1
s = "hello python"
print(s.find("python"))
print(s.find("java"))  # -1

6. 开头/结尾判断

startswith() 判断是否以指定内容开头

s = "https://www.baidu.com"
print(s.startswith("https"))  # True

endswith() 判断是否以指定内容结尾

file = "data.txt"
print(file.endswith("txt"))  # True

四、字符串其他补充要点

  1. 1. 字符串不可变,不能通过索引修改单个字符
s = "abc"
# s[0] = "d"  ❌ 报错
  1. 2. 支持索引、切片,用法和列表、元组一致
s = "abcde"
print(s[1:4])  # bcd
  1. 3. 成员运算符 in 判断是否包含
print("py"in"python")  # True

📚 练习题(带详细讲解)

练习1 转义字符 + 原始字符串

# 正常转义
print("D:\table\file")
# 原始字符串,禁止转义
print(r"D:\table\file")

练习2 三种格式化实现

name = "张三"
score = 89.888
# %格式化
print("学生:%s,成绩:%.2f" % (name, score))
# format
print("学生:{},成绩:{:.2f}".format(name, score))
# f-string
print(f"学生:{name},成绩:{score:.2f}")

练习3 常用方法综合

s = "  Hello World  "
# 去空格+小写
new_s = s.strip().lower()
# 替换
res = new_s.replace("world", "python")
print(res)

练习4 分割与拼接

text = "a-b-c-d"
lst = text.split("-")
new_text = "|".join(lst)
print(new_text)

📝 本章核心总结

  1. 1. 转义字符:\n\t\\;原始字符串r"" 关闭转义
  2. 2. 三种格式化
    • • % :老式占位
    • • format:灵活通用
    • • f-string:简洁高效,首选
  3. 3. 高频方法
    • • 大小写:upper() / lower()
    • • 去空格:strip()
    • • 分割:split() 、拼接:join()
    • • 替换:replace()
    • • 查找:find()
    • • 首尾判断:startswith() / endswith()
  4. 4. 字符串不可变,所有操作都返回新字符串

最新文章

随机文章