当前位置:首页>python>每天学习一点Python——字符串操作指南(下)

每天学习一点Python——字符串操作指南(下)

  • 2026-10-20 12:32:09
每天学习一点Python——字符串操作指南(下)

每天学习一点Python——字符串操作指南(下)

大家好!今天我们来继续学习Python中字符串的各种操作方法以及类型转换的技巧。对于零基础的朋友们来说,这部分内容非常实用,掌握后能让你的代码更加灵活高效。

一、字符串大小写转换

先从一个简单的例子开始:

name = "Ma Nong Zi Xi Shi"
name.lower()   # 返回 'ma nong zi xi shi'
name.upper()   # 返回 'MA NONG ZI XI SHI'
name           # 仍然是 'Ma Nong Zi Xi Shi'

代码解析:

  • • 第一行:定义了一个字符串变量 name,值为 "Ma Nong Zi Xi Shi"
  • • name.lower():调用字符串的 lower() 方法,将所有字母转为小写
  • • name.upper():调用字符串的 upper() 方法,将所有字母转为大写
  • • 最后一行:直接查看 name 变量的值

重要发现:
原字符串 name 的值并没有改变!这是因为Python中的字符串是不可变的。所有字符串方法都不会修改原字符串,而是返回一个新的字符串。

二、去除空白字符

有时候用户输入会带有多余的空格,这时我们需要清理:

name = "    Ma Nong Zi Xi Shi    "

name.rstrip()  # 返回 '    Ma Nong Zi Xi Shi'(仅去除右侧空白)
name.lstrip()  # 返回 'Ma Nong Zi Xi Shi    '(仅去除左侧空白)
name.strip()   # 返回 'Ma Nong Zi Xi Shi'(去除两侧空白)

方法对比表:

+----------+----------------------+----------------------------+
| 方法名   | 功能描述             | 示例结果                   |
+----------+----------------------+----------------------------+
| rstrip() | 去除字符串右侧空白   | '    Ma Nong Zi Xi Shi'    |
| lstrip() | 去除字符串左侧空白   | 'Ma Nong Zi Xi Shi    '    |
| strip()  | 去除字符串两侧空白   | 'Ma Nong Zi Xi Shi'        |
+----------+----------------------+----------------------------+

三、检查字符串开头和结尾

我们可以检查字符串是否以特定内容开始或结束:

starship = "Enterprise"

starship.startswith("En")   # 返回 True(检查是否以"En"开头)
starship.endswith("rise")   # 返回 True(检查是否以"rise"结尾)
starship.endswith("risE")   # 返回 False(区分大小写!)

小Tip: 这两个方法都是区分大小写的。如果希望不区分大小写,可以先将字符串转为统一大小写:

starship.lower().endswith("rise")  # 总是返回 True

四、查找子字符串

想要知道某个词在字符串中的位置?用 find() 方法:

phrase = "the surprise is in here somewhere"

phrase.find("surprise")           # 返回 4(第一次出现的位置索引)
phrase.find("SURPRISE")           # 返回 -1(未找到,区分大小写)
phrase.find("manongzixishi")   # 返回 -1(未找到)

参数意义:

  • • find() 接收一个字符串参数,表示要查找的子字符串
  • • 返回子字符串第一个字符在原字符串中的索引位置(从0开始计数)
  • • 如果没找到,返回 -1

五、字符串替换

替换是字符串处理中的常见操作:

my_story = "I'm telling you the truth; nothing but the truth!"

# 替换所有匹配项

new_story = my_story.replace("the truth", "lies")
print
("原字符串:", my_story)   # 输出:原字符串: I'm telling you the truth; nothing but the truth!
print
("新字符串:", new_story)  # 输出:新字符串: I'm telling you lies; nothing but lies!

关键点:replace() 方法不会修改原字符串,而是返回一个新字符串。原字符串 my_story 保持不变。

替换的高级用法

text = "hello hello hello"

# 替换全部匹配

new1 = text.replace("hello", "hi")     # 返回 "hi hi hi"

# 只替换前2次匹配

new2 = text.replace("hello", "hi", 2)  # 返回 "hi hi hello"

# 只替换1次匹配

new3 = text.replace("hello", "hi", 1)  # 返回 "hi hello hello"

参数详解:

  • • 第一个参数:要查找的子字符串
  • • 第二个参数:要替换成的新字符串
  • • 第三个参数(可选):替换的最大次数,默认为全部替换

六、用户输入处理

Python中获取用户输入非常简单:

user_input = input("Enter your name: ")
print
("Your name is: " + user_input)

执行流程:

  1. 1. 显示提示信息 "Enter your name: "
  2. 2. 等待用户输入(比如输入 "码农自习室")
  3. 3. 将输入的内容赋值给变量 user_input
  4. 4. 输出 "Your name is: 码农自习室"

小Tip:input() 函数总是返回字符串类型,即使输入的是数字。

七、类型转换

在Python中,不同类型的数据需要转换后才能一起使用:

字符串转数字

int("123")      # 返回 123(字符串转整数)
float
("12.3")   # 返回 12.3(字符串转浮点数)

# 注意:不能将小数形式的字符串直接转为整数

int
("12.0")     # 报错:ValueError

正确做法:

int(float("12.0"))  # 先转为浮点数,再转为整数,返回 12

数字转字符串

str(123)   # 返回 "123"
str
(12.3)  # 返回 "12.3"

八、常见错误和注意事项

错误1:字符串与数字直接连接

"3" + 3  # TypeError: can only concatenate str (not "int") to str

正确做法: 先将数字转为字符串

"3" + str(3)  # 返回 "33"

错误2:字符串相乘的陷阱

"12" * 3      # 正确:返回 "121212"
"12"
 * "3"    # 错误:TypeError

一个常见的输入处理错误

# ❌ 错误示例:直接对输入字符串进行乘法
num = input("Enter a number to be doubled: ")  # 用户输入 "2"
doubled_num = num * 2  # 得到 "22",不是我们想要的 4

# ✅ 正确示例:先转换为数字

num = input("Enter a number to be doubled: ")  # 用户输入 "2"
doubled_num = float(num) * 2  # 得到 4.0

字符串的乘法操作

# 字符串 * 整数 = 重复字符串
"2"
 * 2 = "2" + "2" = "22"
"abc"
 * 3 = "abc" + "abc" + "abc" = "abcabcabc"

九、实战练习:Leet Speak转换器

让我们用今天学到的知识完成一个有趣的练习:

text = input("Enter some text: ")

# 替换规则:a→4, b→8, e→3, l→1, o→0, s→5, t→7

leet_text = text.replace('a', '4').replace('b', '8').replace('e', '3')
leet_text = leet_text.replace('l', '1').replace('o', '0')
leet_text = leet_text.replace('s', '5').replace('t', '7')

print
(leet_text)

执行示例:

  • • 输入:"Hello World"
  • • 输出:"H3110 W0r1d"

总结回顾

今天我们一起学习了:

  1. 1. 字符串不可变性:所有字符串方法都返回新字符串,不修改原字符串
  2. 2. 常用字符串方法:大小写转换、去除空白、查找、替换等
  3. 3. 类型转换:字符串与数字之间的相互转换
  4. 4. 用户输入处理:使用 input() 获取用户输入

最重要的概念对比:

概念
是否允许
示例
说明
修改字符串内容
❌ 不允许
s[0] = 'a'
字符串不可变
修改变量指向
✅ 允许
s = "新字符串"
变量可以重新赋值
字符串方法
✅ 返回新字符串
s = s.upper()
创建新字符串对象
类型错误
❌ 常见错误
"3" + 3
需要先进行类型转换

记住:编程就像学习一门新语言,需要不断练习。多写代码,多尝试,遇到错误不要怕,每个错误都是学习的机会。


📦 资源获取提示

关注「码农自习室」,后台回复关键词 Python学习,即可获取本文完整代码及配套练习数据集,一起动手掌握高效数据操作的核心技巧!


❤️ 支持我们

如果觉得本文对你有帮助,欢迎点赞 + 关注,您的支持是我们持续创作优质内容的最大动力!


📚 学习资源说明

本文内容是基于《Python Basics: A Practical Introduction to Python 3》(Real Python)一书的学习笔记整理。
这本书是一本非常优秀的Python入门教材,推荐给所有想要系统学习Python的朋友们。

这本书的特点:

  • • ✅ 完全面向编程新手
  • • ✅ 每个概念都有代码示例
  • • ✅ 包含大量练习题
  • • ✅ 由经验丰富的Python开发者编写

跟着这本书学习,配合我的笔记整理,相信你能更快掌握Python编程!

让我们一起坚持学习,每天进步一点点!💪

最新文章

随机文章