大家好!今天我们来深入学习Python中最基础也最重要的数据类型之一:字符串。无论你是完全零基础,还是已经有一些编程经验,掌握字符串的用法都是学习Python的关键一步。
在Python中,字符串就是用引号包裹的文本。让我们先看一个最简单的例子:
type('Hello world')代码解释:
'Hello world':这是一个字符串,用单引号包裹type():这是一个Python内置函数,用来检查数据的类型执行结果:
strstr就是string(字符串)的缩写,这说明'Hello world'确实是一个字符串。
string1 = "Hello, World"
string2 = '1234'代码解释:
string1:用双引号创建,内容是"Hello, World"string2:用单引号创建,内容是'1234'当字符串中需要包含引号时,就要注意嵌套规则了:
string3 = "We're #1!"
string4 = 'I said, "Put it over by the llama."'代码解释:
string3:双引号内包含单引号 → 可以,不需要转义string4:单引号内包含双引号 → 可以,不需要转义但是如果要在字符串中使用同种引号呢?
text = "She said, \"What time is it?\""
print(text)执行结果:
She said, "What time is it?"代码解释:
\"来转义,告诉Python:这不是字符串的结束,而是字符串内容的一部分📌 小Tip:引号嵌套规则总结
\其实,更简单的做法是:
text1 = 'She said, "What time is it?"'
print(text1)执行结果:
She said, "What time is it?"用单引号包裹整个字符串,里面的双引号就不需要转义了!
有时候我们需要创建很长的字符串,一行写不下怎么办?
\paragraph = "第一行 \
第二行 \
第三行"
print(paragraph)执行结果:
第一行 第二行 第三行代码解释:
\是续行符,告诉Python"这一行代码还没结束""第一行 第二行 第三行""""或'''paragraph = """第一行
第二行
第三行"""
print(paragraph)执行结果:
第一行
第二行
第三行代码解释:
"第一行\n第二行\n第三行"📋 对比总结:
"第一行 \第二行" | |||
"""第一行\n第二行""" |
想知道字符串有多少个字符吗?
print(len("MaNongZiXiShi"))
print(len("Ma Nong Zi Xi Shi"))执行结果:
13
17代码解释:
len():Python内置函数,用于获取长度字符串中的每个字符都有一个"座位号",我们称之为索引。
flavor = "Study Python"这个字符串的索引位置如下:
┌──────────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ 正索引 │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 10 │ 11 │
├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ 字符 │ S │ t │ u │ d │ y │空格 │ P │ y │ t │ h │ o │ n │
├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ 负索引 │ -12 │ -11 │ -10 │ -9 │ -8 │ -7 │ -6 │ -5 │ -4 │ -3 │ -2 │ -1 │
└──────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘flavor[0] # 'S'(第一个字符)
flavor[1] # 't'(第二个字符)
flavor[-1] # 'n'(最后一个字符)
flavor[-2] # 'o'(倒数第二个字符)📌 小Tip:索引从0开始!
flavor[13] # 错误!字符串索引越界错误信息:
IndexError: string index out of range解释:
切片语法:string[start:end]
重要规则:包含start,不包含end
flavor = "Study Python"
flavor[0:3] # 'Stu'(索引0-2)
flavor[:3] # 'Stu'(省略start,默认从0开始)
flavor[3:] # 'dy Python'(省略end,默认到末尾)
flavor[:] # 'Study Python'(整个字符串)flavor[-4:-1] # 'tho'解释:
-4对应字符t-1对应字符n-4),不包含end(-1)-4、-3、-2对应的字符:t、h、o📌 小Tip:切片索引越界不会报错!
flavor[:14] # 'Study Python'(返回整个字符串)
flavor[13:15] # ''(返回空字符串)和单个字符访问不同,切片时索引越界不会报错,只会返回尽可能多的内容或空字符串。
+str1 = "Study"
str2 = "Python"
magic_string = str1 + str2
print(magic_string)执行结果:
StudyPython如果想在中间加空格:
magic_string = str1 + " " + str2
print(magic_string)执行结果:
Study Pythonmagic_string = f"{str1}{str2}"优势:
f"{str1.upper()}{str2.lower()}" # 'STUDYpython'name = "码农自习室"
age = 25
f"姓名:{name:10}年龄:{age:03d}"执行结果:
'姓名:码农自习室 年龄:025'解释:
{name:10}:name长度不足10,会用空格在右侧填充{age:03d}magic_string = "{} {}".format(str1, str2)优势:可以灵活改变参数顺序
"{1} {0} {1}".format(str1, str2)执行结果:
'Python Study Python'解释:
{}中的数字表示参数的索引位置0→第一个参数(str1)1→第二个参数(str2)实际应用例子:
year = 2026
month = 1
day = 20
# 年-月-日
date = "{0}-{1}-{2}".format(year, month, day)
print(date)
# 月/日/年
date = "{1}/{2}/{0}".format(year, month, day)
print(date)执行结果:
2026-1-20
1/20/2026magic_string = " ".join([str1, str2])优势:拼接多个字符串时效率最高
words = ["Gen", "Zhe", "Ma", "Nong", "Zi", "Xi", "Shi", "Xue", "Python"]
" ".join(words) # 用空格连接:'Gen Zhe Ma Nong Zi Xi Shi Xue Python'
",".join(words) # 用逗号连接:'Gen,Zhe,Ma,Nong,Zi,Xi,Shi,Xue,Python'
"\n".join(words) # 用换行连接:每个单词一行
"".join(words) # 无分隔符:'GenZheMaNongZiXiShiXuePython'📋 四种拼接方法对比:
┌──────────┬─────────────────────────┬──────────────────────────┬──────────────────────┐
│ 方法 │ 语法示例 │ 优点 │ 适用场景 │
├──────────┼─────────────────────────┼──────────────────────────┼──────────────────────┤
│ + │ str1 + str2 │ 简单直观 │ 少量字符串拼接 │
├──────────┼─────────────────────────┼──────────────────────────┼──────────────────────┤
│ f-string │ f"{str1}{str2}" │ 最直观,功能强,表达式 │ Python 3.6+,需要 │
│ │ │ 支持灵活 │ 格式化输出 │
├──────────┼─────────────────────────┼──────────────────────────┼──────────────────────┤
│ format() │ "{} {}".format(a,b) │ 参数顺序灵活,可 │ 复杂格式化,需要 │
│ │ │ 重复使用参数 │ 重用参数时 │
├──────────┼─────────────────────────┼──────────────────────────┼──────────────────────┤
│ join() │ " ".join([a,b,c]) │ 拼接多个字符串时效率 │ 列表/元组中的多个 │
│ │ │ 最高 │ 字符串拼接 │
└──────────┴─────────────────────────┴──────────────────────────┴──────────────────────┘今天我们主要学习了Python字符串的下面几个方面:
\不保留格式,三引号保留格式len()函数,空格也算字符[start:end],包含start不包含end记住几个关键点:
join()方法效率最高字符串是编程中最常用的数据类型之一,掌握这些基础操作,你就迈出了成为Python程序员的重要一步。下次我们将学习字符串的更多高级操作,比如查找、替换、分割等。
如果有任何问题,欢迎在评论区留言。我们明天继续学习!
关注「码农自习室」,后台回复关键词 Python学习,即可获取本文完整代码及配套练习数据集,一起动手掌握高效数据操作的核心技巧!
如果觉得本文对你有帮助,欢迎点赞 + 关注,您的支持是我们持续创作优质内容的最大动力!
本文内容是基于《Python Basics: A Practical Introduction to Python 3》(Real Python)一书的学习笔记整理。
这本书是一本非常优秀的Python入门教材,推荐给所有想要系统学习Python的朋友们。
这本书的特点:
跟着这本书学习,配合我的笔记整理,相信你能更快掌握Python编程!
让我们一起坚持学习,每天进步一点点!💪