CC++ & Algorithm

Python字符串的基本操作

中等2
语言版本:C++Python
概述:学会如何创建字符串,理解字符串的加法和乘法,以及用方括号取出单个字符。

字符串就像文字积木——Python字符串基础操作详解

大家好!在日常编程中,我们经常要处理文字,比如你的名字、一句问候、一段聊天记录,甚至一个密码。Python 把这样的一串文字称为 字符串。你可以把它想象成用双引号或单引号框起来的一串字符,就像把字母、数字、符号串在一条线上。字符串能帮我们做很多事情:组合名字、重复口号、从一段话里找出某个字母……今天我们就来学习怎么玩转字符串的基本操作。


什么是字符串?

字符串可以包含字母、数字、符号,甚至空格和标点。例如:

  • 你的名字 "小明" 是一个字符串。
  • 一句座右铭 '好好学习' 也是一个字符串。
  • 甚至 "123" 也是字符串,虽然里面都是数字,但外面有引号,所以Python把它当作文本,而不是数字。

注意:字符串一旦创建,里面的内容就不能被改变了(这叫 不可变)。不过别担心,我们仍然可以通过操作生成新的字符串,就像用旧积木搭出新造型一样。

创建字符串的小规则

  • 可以用双引号 "..." 或单引号 '...',效果一样。比如 "Hello"'Hello' 是同一个字符串。
  • 如果字符串里本身有单引号,外面最好用双引号,反之亦然。例如 "It's a book" 或者 'He said "Hi"'
  • 如果字符串太长,可以用三个引号 """..."""'''...''' 来写多行文本,不过今天我们主要用单行。

字符串的加法(拼接)

用加号 + 可以把两个或多个字符串粘在一起,就像把积木拼成更长的积木。这在生活中很常见:比如把姓和名拼成完整的姓名,或者把两部分句子连起来。

first_name = "张"       # 定义姓氏字符串
last_name = "小明"      # 定义名字字符串
full_name = first_name + last_name   # 用加号拼接
print(full_name)        # 输出: 张小明

# 拼接时也可以加入空格或其他字符
greeting = "你好" + " " + "Python"   # 中间加个空格
print(greeting)         # 输出: 你好 Python

你还可以把多个字符串连在一起:

part1 = "今天"      # 第一部分
part2 = "天气"      # 第二部分
part3 = "真好"      # 第三部分
sentence = part1 + part2 + part3   # 三个串连起来
print(sentence)     # 输出: 今天天气真好

小提醒:只能用字符串加字符串。如果你写 "abc" + 123,Python会报错,因为一个字符串不能直接加数字。要先把数字转成字符串,比如 "abc" + str(123)


字符串的乘法(重复)

用乘号 * 可以让一个字符串重复指定的次数。这就像复印机,把一句话打印好多份。比如给好朋友发很多“哈哈”,或者重复写作业里的同一个句子。

laugh = "哈哈"          # 一个字串
many_laughs = laugh * 5 # 重复5次
print(many_laughs)      # 输出: 哈哈哈哈哈

# 还可以把重复结果拼接起来
score = "满分"          # 一个词
excellent = score * 3 + "!"   # 重复3次再加感叹号
print(excellent)        # 输出: 满分满分满分!

生活中的例子:假如你要给全班30个同学每人发一句“加油”,你可以写:

cheer = "加油"
message = (cheer + " ") * 30   # 重复 "加油 " 30次
print(message[:60])            # 这里只显示前60个字符,省得太长

虽然乘法结果很长,但Python一下子就生成了,非常方便。

小心:乘法的次数必须是整数(0也可以,结果就是空字符串),不能是小数。比如 "Ha" * 1.5 会报错。


用方括号取字符

每个字符串中的字符都有一个位置编号,叫做 索引。索引从 0 开始,也就是说第一个字符的索引是0,第二个是1,第三个是2……依此类推。用方括号 [索引] 可以取出那个位置上的字符。

name = "Python"          # 字符串
first = name[0]          # 取索引0,得到 'P'
second = name[1]         # 取索引1,得到 'y'
third = name[2]          # 取索引2,得到 't'
print(first, second, third)  # 输出: P y t

获取最后一个字符:由于索引从0开始,最后一个字符的索引是 字符串长度减1。比如 "Python" 有6个字符,最后一个索引是5。我们可以先用 len() 得到长度,再减1。

word = "Hello"           # 字符串
length = len(word)       # 长度是5
last_index = length - 1  # 最后一个索引是4
last_char = word[last_index]   # 取索引4,得到 'o'
print(last_char)         # 输出: o

也可以直接用负索引:-1 表示最后一个,-2 表示倒数第二个。这个属于高级玩法,知道就行:

word = "Hello"
print(word[-1])   # 输出: o
print(word[-2])   # 输出: l

新手的常见错误

  • 索引越界:如果索引超出了 0 ~ 长度-1 的范围,Python会报 IndexError。例如 "Hi"[2] 会报错,因为只有索引0和1。
  • 忘记索引从0开始:很多人一开始会以为第一个字符索引是1,结果取到第二个字符。记住:Python里第一个是0。

获取字符串的长度

用内置函数 len() 可以知道字符串里有多少个字符。注意:空格、标点、特殊符号都算一个字符。

my_str = "I love Python!"     # 字符串
count = len(my_str)           # 得到字符个数
print(count)                  # 输出: 14

# 空格算一个字符
space_example = "A B"         # 中间有一个空格
print(len(space_example))     # 输出: 3(字母A、空格、字母B)

练习:试试你的名字有多少个字符?比如“小明”是2个字符,“张三丰”是3个。


新手容易犯的错误

  1. 引号不配对:字符串必须以相同类型的引号开头和结尾。比如 "Hello' 会报错。
  2. 字符串和数字混用"结果" + 3 会报 TypeError,需要用 str(3) 转成字符串。
  3. 索引越界:如 "abc"[3],因为只有0,1,2三个索引。
  4. 乘法的次数为负数或小数"Ha" * -1"Ha" * 1.5 都会报错。
  5. 忘记字符串不可变:尝试 name[0] = 'X' 会报错。要修改字符串只能创建新的。

完整示例:用字符串操作写一个“欢迎条幅”

下面的程序综合了拼接、重复和取字符,给一个同学制作欢迎条幅。

# 欢迎条幅程序
student_name = "李雷"           # 同学名字
welcome = "欢迎"               # 欢迎词
exclamation = "!"              # 感叹号

# 拼接成欢迎语
line = welcome + " " + student_name + exclamation   # 结果: 欢迎 李雷!
print(line)                     # 输出: 欢迎 李雷!

# 在上下加一排星星,让条幅更好看
star = "*"                      # 一个星号
border = star * (len(line) + 4) # 两边各加两个星号,总宽度比文字多4

# 打印带边框的条幅
print(border)                   # 上边框
print("* " + line + " *")       # 中间行,左右加星号
print(border)                   # 下边框

# 取出名字的第一个字符
first_letter = student_name[0]  # 取第一个字 "李"
print("名字的首字是:", first_letter)  # 输出: 名字的首字是: 李

运行结果:

*************
* 欢迎 李雷! *
*************
名字的首字是: 李

相关指引

学会了这些基础操作,你已经能灵活处理简单的文字了。接下来你可以学习:

  • 字符串方法:比如 .upper() 转大写、.lower() 转小写、.strip() 去掉首尾空格、.split() 分隔成列表等。这些方法能帮你更高效地处理文本。
  • 格式化字符串:用 f-string 把变量嵌入字符串中,比如 f"你好,{name}",更加直观。
  • 索引和切片:用 [开始:结束] 取出子串,比如 "Python"[0:3] 得到 "Pyt"

继续练习,你会发现字符串操作就像搭积木一样有趣!

例题精讲

1单选题

执行以下代码后,输出结果是什么? print('Hi' * 3)

AHiHiHi
BHi3
CHi Hi Hi
D报错
2判断题

在Python中,字符串'Hello'的第1个字符(即索引0对应的字符)是'H'。

3填空题
下列代码将字符串'Python'和'编程'拼接起来,请补全代码。
s1 = 'Python'
s2 = '编程'
result = s1 + ___
print(result)
4单选题

已知s = 'ABCDEF',想要取出字符'D',正确的表达式是:

As[3]
Bs[4]
Cs[-2]
Ds[2]
5判断题

执行print('Go' * 0)会输出空字符串。