每天学习一点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 的值并没有改变!这是因为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开始计数)
五、字符串替换
替换是字符串处理中的常见操作:
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. 显示提示信息 "Enter your name: "
- 3. 将输入的内容赋值给变量
user_input - 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)
执行示例:
总结回顾
今天我们一起学习了:
- 1. 字符串不可变性:所有字符串方法都返回新字符串,不修改原字符串
- 2. 常用字符串方法:大小写转换、去除空白、查找、替换等
- 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编程!
让我们一起坚持学习,每天进步一点点!💪