在 Python 里,文字叫做「字符串」。我们每天都在用它:打印提示语、处理用户输入、拼接名字……今天,我们来系统学习字符串的各种用法,让你处理文字得心应手!
一、创建字符串
name = "小明"
greeting = '你好,世界!'
poem = """
床前明月光,
疑是地上霜。
""" # 三引号可以换行
二、字符串切片 —— 截取一段文字
s = "Hello Python"
# 0123456789...
print(s[0]) # H 第1个字符
print(s[6]) # P 第7个字符
print(s[0:5]) # Hello 第1到第5个
print(s[6:]) # Python 第7个到结尾
print(s[-6:]) # Python 倒数6个到结尾
print(s[::-1]) # nohtyP olleH 反转字符串
H
P
Hello
Python
Python
nohtyP olleH
规律:s[开始:结束],包含开始,不包含结束。
三、常用字符串方法
s = " Hello Python "
print(s.upper()) # " HELLO PYTHON " 全大写
print(s.lower()) # " hello python " 全小写
print(s.strip()) # "Hello Python" 去掉两端空格
print(s.strip().replace("Python", "世界")) # "Hello 世界"
print(len(s)) # 18 字符串长度
print(s.count("l")) # 2 统计字母l出现次数
print(s.strip().startswith("Hello")) # True 是否以Hello开头
print(s.strip().endswith("Python")) # True 是否以Python结尾 HELLO PYTHON
hello python
Hello Python
Hello 世界
18
2
True
True
四、split —— 拆分字符串
scores = "小明:95,小红:88,小刚:92"
parts = scores.split(",")
print(parts)
# ['小明:95', '小红:88', '小刚:92']
for p in parts:
name, score = p.split(":")
print(f"{name} 的成绩是 {score} 分")['小明:95', '小红:88', '小刚:92']
小明 的成绩是 95 分
小红 的成绩是 88 分
小刚 的成绩是 92 分
五、join —— 拼接字符串
words = ["小明", "小红", "小刚"]
result = "、".join(words)
print(result) # 小明、小红、小刚
nums = [1, 2, 3, 4, 5]
# 注意:join 只能拼接字符串,数字要先转换
result2 = "-".join(str(n) for n in nums)
print(result2) # 1-2-3-4-5
小明、小红、小刚
1-2-3-4-5
六、f-string —— 最好用的格式化方式
name = "小明"
score = 95.678
# 基本用法
print(f"我叫{name},成绩是{score}分")
# 保留小数位
print(f"成绩:{score:.1f}分") # 保留1位小数
print(f"成绩:{score:.2f}分") # 保留2位小数
# 对齐
print(f"{'姓名':<6}{'成绩':>6}")
print(f"{'小明':<6}{95:>6}")
print(f"{'小红':<6}{88:>6}")我叫小明,成绩是95.678分
成绩:95.7分
成绩:95.68分
姓名 成绩
小明 95
小红 88
七、in —— 判断是否包含
sentence = "今天天气真好,适合出去玩!"
if "天气" in sentence:
print("提到了天气")
if "下雨" not in sentence:
print("没有提到下雨")提到了天气
没有提到下雨
八、实战:简单的文字处理工具
def process_name(full_name):
"""处理姓名:去空格、统计字数、提取姓氏"""
name = full_name.strip()
print(f"姓名:{name}")
print(f"字数:{len(name)} 个字")
print(f"姓氏:{name[0]}")
print(f"名字:{name[1:]}")
def check_password(pwd):
"""检查密码强度"""
if len(pwd) < 6:
return "太短了,至少6位!"
if pwd.isdigit():
return "全是数字,太简单了!"
if pwd.isalpha():
return "全是字母,建议加数字!"
return "密码强度不错!"
process_name(" 张小明 ")
print()
print(check_password("123"))
print(check_password("abcdef"))
print(check_password("abc123"))姓名:张小明
字数:3 个字
姓氏:张
名字:小明
太短了,至少6位!
全是字母,建议加数字!
密码强度不错!
九、字符串方法速查表
| 方法 | 作用 |
| s.upper() / s.lower() | 全大写 / 全小写 |
| s.strip() | 去掉两端空格 |
| s.replace(a, b) | 把 a 替换成 b |
| s.split(sep) | 按 sep 拆分成列表 |
| sep.join(list) | 用 sep 拼接列表 |
| s.startswith() / s.endswith() | 判断开头 / 结尾 |
| s.count(sub) | 统计子串出现次数 |
| len(s) | 字符串长度 |
| s[i:j] | 切片,截取第 i 到 j-1 个字符 |
十、练习题
练习1:统计一句话里有多少个「的」
sentence = "我的书包是红色的,里面装的是我的课本"
count = sentence.count("的")
print(f"「的」出现了 {count} 次")练习2:把手机号中间4位变成 ****
phone = "13812345678"
hidden = phone[:3] + "****" + phone[7:]
print(hidden) # 138****5678
十一、今天学到了什么?
-
- 切片:s[开始:结束] 截取字符串
-
- 常用方法:upper/lower/strip/replace/split/join
-
- f-string:最方便的字符串格式化
-
- in:判断是否包含某个子串
-
- len():获取字符串长度
-
十二、下期预告
字符串学完了!下节课我们来学 —— input() 输入 + 推导式,让程序能和用户互动,代码写得更简洁!
敬请期待:《小学生Python:输入与推导式 —— 让代码更简洁》
喜欢这篇文章吗?点个「在看」,让更多小朋友学会用 Python 处理文字!