Python字符串的基本操作
中等2字符串就像文字积木——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个。
新手容易犯的错误
- 引号不配对:字符串必须以相同类型的引号开头和结尾。比如
"Hello'会报错。 - 字符串和数字混用:
"结果" + 3会报TypeError,需要用str(3)转成字符串。 - 索引越界:如
"abc"[3],因为只有0,1,2三个索引。 - 乘法的次数为负数或小数:
"Ha" * -1或"Ha" * 1.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"。
继续练习,你会发现字符串操作就像搭积木一样有趣!
例题精讲
执行以下代码后,输出结果是什么? print('Hi' * 3)
在Python中,字符串'Hello'的第1个字符(即索引0对应的字符)是'H'。
下列代码将字符串'Python'和'编程'拼接起来,请补全代码。
s1 = 'Python'
s2 = '编程'
result = s1 + ___
print(result)已知s = 'ABCDEF',想要取出字符'D',正确的表达式是:
执行print('Go' * 0)会输出空字符串。