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 拼变量,但它本身改不了——想改就新建一个。

掌握这些,日常写代码处理文字基本够用了。剩下的边用边查就行,不用死记硬背~

posted @ 2026-09-27 14:59  我爱python3  阅读(3)  评论(0)    收藏  举报