Python3字符串类型详解
一、字符串是个啥?
字符串说白了就是一段文字。比如:
name = "张三"
greeting = '你好呀'
sentence = """今天天气不错,
我出去溜达了一圈。"""
只要用引号包起来的东西,就是字符串。Python 里引号有三种写法:
- 单引号
'...' - 双引号
"..." - 三引号
'''...'''或"""..."""(可以换行写)
单引号和双引号没啥区别,你想用哪个用哪个。但如果字符串里面本身有引号,就换个引号包外面:
a = "他说:'你好'"
b = '她回答:"我很好"'
二、字符串能干嘛?
1. 拼接(把两个串接起来)
用 + 号:
first = "张"
last = "三"
print(first + last) # 张三
或者用 * 号重复:
print("哈" * 3) # 哈哈哈
注意:字符串不能直接和数字相加!
print("我今年" + 18) # 报错
print("我今年" + str(18)) # 我今年18
2. 索引(按位置取字符)
字符串就像一排格子,每个格子放一个字符,从 0 开始编号:
s = "Python"
# P y t h o n
# 0 1 2 3 4 5
# -6 -5 -4 -3 -2 -1
print(s[0]) # P
print(s[3]) # h
print(s[-1]) # n(最后一个)
3. 切片(取一段)
格式:s[起点:终点:步长],含头不含尾(起点算,终点不算):
s = "Python"
print(s[0:3]) # Pyt
print(s[2:]) # thon(从2到结尾)
print(s[:3]) # Pyt(从头到2)
print(s[::2]) # Pto(每隔一个取一个)
print(s[::-1]) # nohtyP(反转字符串!)
三、常用方法(超实用)
字符串自带一堆“工具”,用 .方法名() 调用:
大小写转换
s = "Hello World"
print(s.upper()) # HELLO WORLD
print(s.lower()) # hello world
print(s.title()) # Hello World
print(s.capitalize()) # Hello world
去掉空格
s = " 你好 "
print(s.strip()) # "你好"(去两边)
print(s.lstrip()) # "你好 "(去左边)
print(s.rstrip()) # " 你好"(去右边)
查找和替换
s = "我爱北京天安门"
print(s.find("北京")) # 2(返回位置,找不到返回-1)
print(s.index("北京")) # 2(找不到会报错)
print(s.replace("北京", "上海")) # 我爱上海天安门
print("北京" in s) # True(判断包不包含)
分割和合并
s = "苹果,香蕉,橘子"
lst = s.split(",") # ['苹果', '香蕉', '橘子']
lst2 = ["我", "爱", "你"]
print("-".join(lst2)) # 我-爱-你
判断类方法
print("abc123".isalnum()) # True(全是字母或数字)
print("abc".isalpha()) # True(全是字母)
print("123".isdigit()) # True(全是数字)
print(" ".isspace()) # True(全是空白)
print("Hello".startswith("He")) # True
print("Hello".endswith("lo")) # True
四、格式化输出(重点!)
把变量的值塞进字符串里,有几种方式:
方式1:f-string(最推荐,Python 3.6+)
name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")
# 我叫小明,今年18岁
还能直接算:
print(f"明年我{age + 1}岁") # 明年我19岁
方式2:format()
print("我叫{},今年{}岁".format("小明", 18))
print("我叫{0},今年{1}岁".format("小明", 18))
print("我叫{name},今年{age}岁".format(name="小明", age=18))
方式3:% 老古董写法(了解即可)
print("我叫%s,今年%d岁" % ("小明", 18))
五、转义字符(特殊符号)
有些符号打不出来,就用 \ 转义:
| 写法 | 意思 |
|---|---|
\n |
换行 |
\t |
制表符(Tab) |
\\ |
一个反斜杠 |
\' |
单引号 |
\" |
双引号 |
print("第一行\n第二行")
print("姓名\t年龄")
原始字符串:加个 r 前缀,里面的 \ 不当转义用(写正则和路径常用):
print(r"C:\Users\new") # C:\Users\new
六、字符串不可变(重要!)
字符串一旦创建,改不了!所有“修改”其实都是生成了新字符串:
s = "hello"
s[0] = "H" # 报错!不能直接改
# 正确做法:重新赋值
s = "H" + s[1:]
print(s) # Hello
七、常用小技巧
# 1. 长度
len("Python") # 6
# 2. 反转
"Python"[::-1] # nohtyP
# 3. 判断回文
s = "上海自来水来自海上"
print(s == s[::-1]) # True
# 4. 遍历每个字符
for ch in "abc":
print(ch)
# 5. 字符串转列表
list("abc") # ['a', 'b', 'c']
# 6. 多行字符串
text = """
第一行
第二行
第三行
"""
八、总结一句话
字符串就是带引号的文字,能用索引切片取内容,能用一堆方法做处理,能用 f-string 拼变量,但它本身改不了——想改就新建一个。
掌握这些,日常写代码处理文字基本够用了。剩下的边用边查就行,不用死记硬背~

浙公网安备 33010602011771号