当前位置:首页>python>Python字符串

Python字符串

  • 2026-10-11 08:40:50
Python字符串

字符串怎么表示?四种姿势任你选

Python里表示字符串有4种方式:

# 单引号name = '老李'# 双引号city = "郑州"# 三单引号(可换行)poem = '''床前明月光,疑是地上霜。'''# 三双引号(也可换行)doc = """这是文档可以写多行"""
为啥提供这么多种? 为了方便你在字符串里包含引号。
# 字符串里有双引号,外面用单引号s1 = '我说:"你好"'# 字符串里有单引号,外面用双引号s2 = "It's OK"# 既有单又有双,外面用三引号s3 = '''他说:"It's fine"'''

凡是引号配对正确,怎么舒服怎么来。


索引和切片:像切蛋糕一样切字符串

字符串是有序的字符序列,每个字符都有编号。

正向编号从0开始,负向编号从-1开始(最后一个字符):

正:  0   1   2   3   4   5     P   y   t   h   o   n负: -6  -5  -4  -3  -2  -1

索引:取单个字符

s = "Python"print(s[0])   # Pprint(s[-1])  # n

切片:取一段子串

s[M:N] 取从M到N-1的字符(包头不包尾)

s = "Python"print(s[0:4])   # Pythprint(s[2:5])   # thoprint(s[:4])    # Pyth(开头省略,从头开始)print(s[2:])    # thon(结尾省略,到末尾)print(s[-3:])   # hon(最后三个)

切片高级玩法:步长

s[M:N:K] 中K是步长,可以跳着取。

s = "一二三四五六七八九十"print(s[1:8:2])   # 二四六八(从索引1到7,每2个取一个)print(s[::2])     # 一三五七九(每隔一个取)print(s[::-1])    # 十九八七六五四三二一(倒序)

有没有觉得[::-1]直接倒序特别酷?我第一次用的时候惊了。


操作符:拼接、复制、判断成员

+ 拼接

first = "老"last = "李"name = first + last   # "老李"

* 复制

line = "=" * 20   # "===================="print(line)

in 判断是否包含

sentence = "我爱Python编程"print("Python" in sentence)   # Trueprint("Java" in sentence)     # False

我用这个做过敏感词过滤:如果用户输入包含某个词,就提示“输入不合法”。


常用字符串处理函数(不是方法)

函数是直接调用的,比如len(str)。

函数
作用
例子
len(x)
返回长度
len("Python")
 → 6
str(x)
转字符串
str(3.14)
 → "3.14"
chr(u)
Unicode编码转字符
chr(9801)
 → '♉'
ord(c)
字符转Unicode编码
ord('老')
 → 32769

好玩的东西:Unicode字符

每个字符都有一个数字编号(Unicode码)。Python可以直接处理。

# 打印所有星座符号(♈♉♊♋♌♍♎♏♐♑♒♓)for i in range(12):    print(chr(9800 + i), end="")# ♈♉♊♋♌♍♎♏♐♑♒♓# 看看“规划”俩字的编码print(ord('规'), ord('划'))   # 35268 21010

以后想在字符串里加特殊符号,不用复制粘贴,直接用chr()。


字符串方法:变量.方法() 的姿势

方法属于某个对象,比如字符串变量后面点出来的函数。

.lower() / .upper() 大小写转换

text = "Hello World"print(text.lower())   # hello worldprint(text.upper())   # HELLO WORLD

.split() 切割成列表

data = "苹果,香蕉,橘子"fruits = data.split(",")print(fruits)   # ['苹果', '香蕉', '橘子']# 不传参数默认按空格切words = "我 爱 Python".split()print(words)    # ['我', '爱', 'Python']

.count() 统计子串出现次数

s = "an apple a day"print(s.count("a"))   # 4(小写a)

.replace() 替换

s = "我讨厌Python"new_s = s.replace("讨厌", "喜欢")print(new_s)   # 我喜欢Python

.center() 居中填充

title = "学习报告"print(title.center(20, "="))# ========学习报告========

.strip() 去除首尾指定字符(默认空格)

s = "  hello  "print(s.strip())      # "hello"s2 = "=Python="print(s2.strip("="))  # "Python"

.join() 用分隔符连接列表元素(与split相反)

words = ["我", "爱", "Python"]sentence = "-".join(words)print(sentence)   # 我-爱-Python

这个超级实用,比如把列表变成逗号分隔的字符串。


综合案例:文本清洗小工具

把今天学的知识点揉在一起,写一个处理用户评论的功能:去空格、统一小写、过滤敏感词。

# 原始评论(带大小写、首尾空格、标点)comments = [    "  Python真难学  ",    "我好喜欢编程",    "   PYTHON是最好语言的!",    "   hate this  ",    "   python  万岁  "]sensitive_words = ["hate", "讨厌", "笨"]print("原始评论:")for i, c in enumerate(comments):    print(f"{i+1}. {c}")print("\n开始清洗...")clean_comments = []for c in comments:    # 去除首尾空格    c = c.strip()    # 转换为小写    c = c.lower()    # 检查敏感词    for word in sensitive_words:        if word in c:            c = c.replace(word, "***")    clean_comments.append(c)print("\n清洗后:")for i, c in enumerate(clean_comments):    print(f"{i+1}. {c}")# 用join输出为一个段落all_text = " | ".join(clean_comments)print(f"\n合并后:{all_text}")# 统计一下总字符数(不包括空格)total_len = sum(len(c.replace(" ", "")) for c in clean_comments)print(f"有效字符总数(不含空格):{total_len}")

运行结果:

原始评论:1.   Python真难学  2. 我好喜欢编程3.    PYTHON是最好语言的!4.    hate this  5.    python  万岁  开始清洗...清洗后:1. python真难学2. 我好喜欢编程3. python是最好语言的!4. *** this5. python  万岁合并后:python真难学 | 我好喜欢编程 | python是最好语言的! | *** this | python  万岁有效字符总数(不含空格):43

清理用户输入的文本数据。平时觉得没用的方法,凑在一起就能干活。


我的一点小感悟

join和split,让我明白了:编程很多时候就是把“一大块”拆成“小块”处理,再拼回去。


📌 今日学习笔记:

学到了什么:

  • 字符串4种表示:单引号、双引号、三单引号、三双引号

  • 索引(正向从0开始,反向从-1开始)

  • 切片:[M:N] 包前不包后,[M:N:K] 步长,[::-1] 倒序

  • 操作符:+ 拼接,* 复制,in 成员判断

  • 函数:len()、str()、chr()、ord()

  • 方法:.lower()、.upper()、.split()、.count()、.replace()、.center()、.strip()、.join()

踩坑记录:

  • 切片索引超出范围不会报错,比如 s[2:100] 只返回到末尾,不报错

  • s.split() 默认按任意空白字符(空格、换行等)切,多个空格会切出空字符串,最好明确指定分隔符

  • .strip() 只去首尾,不去中间空格,一开始错以为是全局去空格

用时: 1小时


📢 我是老李,35岁规划师,从零开始学AI。

每天1小时,记录真实学习路。不求成为大神,只为多一条出路。

如果你也在传统行业或者对未来感到焦虑,如果你也想学点新东西但一直没有开始

点击关注,我们一起进步;

也欢迎点赞 ❤️ 分享 ➕ 推荐,让更多同行者看到!

👇👇👇

最新文章

随机文章