当前位置:首页>python>小学生Python:字符串 —— 文字处理的瑞士军刀

小学生Python:字符串 —— 文字处理的瑞士军刀

  • 2026-09-02 19:06:26
小学生Python:字符串 —— 文字处理的瑞士军刀

在 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

十一、今天学到了什么?

  1. 切片:s[开始:结束] 截取字符串
  2. 常用方法:upper/lower/strip/replace/split/join
  3. f-string:最方便的字符串格式化
  4. in:判断是否包含某个子串
  5. len():获取字符串长度

十二、下期预告

字符串学完了!下节课我们来学 —— input() 输入 + 推导式,让程序能和用户互动,代码写得更简洁!

敬请期待:《小学生Python:输入与推导式 —— 让代码更简洁》

喜欢这篇文章吗?点个「在看」,让更多小朋友学会用 Python 处理文字!

最新文章

随机文章