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

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

  • 2026-10-21 13:27:27
每天学习一点Python——字符串操作指南(上)

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

大家好!今天我们来深入学习Python中最基础也最重要的数据类型之一:字符串。无论你是完全零基础,还是已经有一些编程经验,掌握字符串的用法都是学习Python的关键一步。

一、字符串是什么?

在Python中,字符串就是用引号包裹的文本。让我们先看一个最简单的例子:

type('Hello world')

代码解释:

  • • 'Hello world':这是一个字符串,用单引号包裹
  • • type():这是一个Python内置函数,用来检查数据的类型
  • • 这行代码的作用是查看'Hello world'这个数据是什么类型

执行结果:

str

str就是string(字符串)的缩写,这说明'Hello world'确实是一个字符串。

二、创建字符串的多种方式

1. 基本创建方法

string1 = "Hello, World"
string2 = '1234'

代码解释:

  • • 这两行代码创建了两个字符串变量
  • • string1:用双引号创建,内容是"Hello, World"
  • • string2:用单引号创建,内容是'1234'
  • • 在Python中,单引号和双引号效果完全一样,都可以用来创建字符串,但是在写代码时,尤其是大型项目中,最好统一一下。

2. 引号嵌套技巧

当字符串中需要包含引号时,就要注意嵌套规则了:

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:引号嵌套规则总结

  1. 1. 单引号字符串中可以包含双引号(不需要转义)
  2. 2. 双引号字符串中可以包含单引号(不需要转义)
  3. 3. 同种引号嵌套时必须使用转义字符\

其实,更简单的做法是:

text1 = 'She said, "What time is it?"'
print
(text1)

执行结果:

She said, "What time is it?"

用单引号包裹整个字符串,里面的双引号就不需要转义了!

三、多行字符串的两种写法

有时候我们需要创建很长的字符串,一行写不下怎么办?

方法1:续行符\

paragraph = "第一行 \
第二行 \
第三行"

print
(paragraph)

执行结果:

第一行 第二行 第三行

代码解释:

  • • \是续行符,告诉Python"这一行代码还没结束"
  • • 但是!源代码中的换行不会被保留在字符串中
  • • 实际上这个字符串是:"第一行 第二行 第三行"

方法2:三引号"""或'''

paragraph = """第一行
第二行
第三行"""

print
(paragraph)

执行结果:

第一行
第二行
第三行

代码解释:

  • • 用三个双引号(或三个单引号)包裹
  • • 会保留源代码中的所有换行
  • • 实际在内存中是:"第一行\n第二行\n第三行"

📋 对比总结:

方法
写法
是否保留换行
适用场景
续行符
"第一行 \第二行"
不保留
代码太长需要换行,但字符串内容不需要换行
三引号
"""第一行\n第二行"""
保留
文档字符串、长消息、SQL查询等需要保留格式的文本

四、获取字符串长度

想知道字符串有多少个字符吗?

print(len("MaNongZiXiShi"))
print
(len("Ma Nong Zi Xi Shi"))

执行结果:

13
17

代码解释:

  • • len():Python内置函数,用于获取长度
  • • 第一个字符串:13个字符
  • • 第二个字符串:17个字符(空格也算长度!)

五、访问字符串中的字符

字符串中的每个字符都有一个"座位号",我们称之为索引。

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开始!

  • • 第一个字符的索引是0,不是1
  • • 最后一个字符可以用-1访问
flavor[13]  # 错误!字符串索引越界

错误信息:

IndexError: string index out of range

解释:

  • • 字符串长度是12,索引范围是0-11或-12到-1
  • • 访问第13个元素(索引12)就会报错

六、字符串切片(取一部分)

切片语法: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
  • • 包含start(-4),不包含end(-1)
  • • 所以取-4、-3、-2对应的字符:t、h、o

📌 小Tip:切片索引越界不会报错!

flavor[:14]    # 'Study Python'(返回整个字符串)
flavor[13:15]  # ''(返回空字符串)

和单个字符访问不同,切片时索引越界不会报错,只会返回尽可能多的内容或空字符串。

七、字符串拼接(连接)

方法1:使用+

str1 = "Study"
str2 = "Python"
magic_string = str1 + str2
print
(magic_string)

执行结果:

StudyPython

如果想在中间加空格:

magic_string = str1 + "   " + str2
print
(magic_string)

执行结果:

Study   Python

方法2:f-string(推荐!)

magic_string = f"{str1}{str2}"

优势:

  1. 1. 最直观:变量直接放在大括号里
  2. 2. 功能强大:可以在大括号里写表达式
f"{str1.upper()}{str2.lower()}"  # 'STUDYpython'

f-string的高级格式化

name = "码农自习室"
age = 25
f"姓名:{name:10}年龄:{age:03d}"

执行结果:

'姓名:码农自习室      年龄:025'

解释:

  • • {name:10}:
    • • 10 表示最小宽度为10个字符
    • • 如果变量name长度不足10,会用空格在右侧填充
    • • 输出:姓名:张三
    • • "张三"只有2个字符,所以右边加了8个空格
  • • {age:03d}
    • • 0 表示用0填充
    • • 3 表示宽度为3
    • • d 表示十进制整数(decimal)
    • • 输出:年龄:025
    • • 25只有2位,所以在左边补0到3位

方法3:format()方法

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/2026

方法4:join()方法

magic_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字符串的下面几个方面:

  1. 1. 创建字符串:单引号、双引号都可以
  2. 2. 引号嵌套:内外用不同引号,避免转义麻烦
  3. 3. 多行字符串:续行符\不保留格式,三引号保留格式
  4. 4. 获取长度:len()函数,空格也算字符
  5. 5. 访问字符:用索引,从0开始,负数表示从后往前
  6. 6. 字符串切片:[start:end],包含start不包含end
  7. 7. 字符串拼接:四种方法各有优势

记住几个关键点:

  • • 索引从0开始,不是1!
  • • 切片时,end位置的字符不会被包含
  • • 拼接多个字符串时,join()方法效率最高

字符串是编程中最常用的数据类型之一,掌握这些基础操作,你就迈出了成为Python程序员的重要一步。下次我们将学习字符串的更多高级操作,比如查找、替换、分割等。

如果有任何问题,欢迎在评论区留言。我们明天继续学习!


📦 资源获取提示

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


❤️ 支持我们

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


📚 学习资源说明

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

这本书的特点:

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

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

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

最新文章

随机文章