字符串
用引号包住的文字。电脑把它当成一串字符。
它是什么
字符串 是文字。
类型名字是 str。
要用引号包住。
单引号、双引号都可以。
name = "小派"
city = '杭州'"3" 是文字。
3 是整数。
盖子一盖,就不能直接当数字乘。
空字符串 "" 也是字符串。
里面一个字都没有。
长度是 0,它仍然是文字这种类型。
名字从哪来
字符串的英文是 string。 原意是「绳子」「一串」。
早期计算机科学家把字符一个接一个排起来,像珠子穿在绳子上。 所以叫 string of characters,一串字符。 中文译成「字符串」,保留了「串」这个画面。
今天的 Python 不只认识英文字母。
它使用 Unicode。
汉字、标点、emoji,都可以是字符串里的一个字符。
「中文也是字」,长度按字符数算:len("你好") 是 2。
它怎么工作
拼接和重复
+ 把两段接起来。
* 把同一段重复多次。
print("你好" + "小派")
print("哈" * 3)print 用逗号分开,只是一起显示。 那不是真的拼接。
文字和数字拼在一起,要先 str():
age = 11
print("今年" + str(age) + "岁")先转成文字,再拼接,句子就接得上。
以后还会见到更方便的写法。
入门先把 + 和 str() 用熟就够。
下标、切片、长度
下标从 0 开始。 这和 列表 一样。
word = "编码"
print(word[0]) # 编
print(len(word)) # 2
print("hello"[1:4]) # ell[-1] 是最后一个字符。
切片左闭右开:[1:4] 取下标 1、2、3。
常用方法
split 按分隔符切开,得到列表。
print("红,黄,蓝".split(","))replace 换字。
常常得到新字符串。
旧的不一定被改。
想留下新的,要赋值。
line = "我喜欢猫"
line = line.replace("猫", "狗")遍历和 循环 很配:
for ch in "hi":
print(ch)每个字符走一次。 空格、标点也算字符。
生活里在哪里
- 姓名、班级、座右铭:都是文字,不是拿来乘除的数。
- 短信、聊天记录:一串字发出去、存下来。
- 图书索书号:看起来像数字和字母的混合物,其实是编号文字。
- 歌词重复:「啦」唱三遍,很像
"啦" * 3。
输入框里你敲的每一句话,程序收到时几乎都是字符串。 详见 input。
和相近概念的差别
字符串是一串字符。 列表是一排格子,格子里可以装各种类型。
都可以按下标取、都可以遍历。 字符串里的某一个字,通常不能直接改成另一个字。 要得到新句子,常常做出一条新字符串。 列表更常原地修改。
"3" 和 3 的差别,是 数据类型 里最常见的一对。
一个能拼接,一个能加减。
注释也是给人看的字,但写在 # 后面。
电脑会跳过注释,不会跳过字符串。
见 注释。
常见误会
误会 1:引号不成对,或用了中文引号 “”。
要用英文引号。 一头一尾配成一对。
误会 2:以为下标从 1 开始。
第一个字符是 [0]。
误会 3:replace 后忘记赋值。
新句子做出来了,旧变量可能还握着旧句子。
误会 4:"哈" * 3 是三个人在笑。
它只是把字重复三遍,得到 哈哈哈。
误会 5:中文算两个长度。
在 Python 3 里,一个汉字通常长度是 1。
len("你好") 是 2。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(有拼接、分割这类文字练习)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(字符串一章可以和家长一起改问候语、拼句子)。
未登录时不会保存学习进度