坚持
  • 微信
当前位置:首页 > PYTHON >

字符串

作者:管理员 时间:2026-06-06 阅读数: 849人阅读

一、字符串基础

1. 核心特点

  1. 字符串是字符序列,Python无单字符类型,单个字符也是字符串。

  2. 不可变:不能直接修改原字符串内容,修改只能生成新字符串。

  3. 编码:Python3默认Unicode

    • ord(字符):字符→Unicode数字

    • chr(数字):数字→字符

print(ord('A'), chr(66))
print(ord('高'))

二、字符串定义方式

1. 单引号/双引号

a = "I'm a teacher!"
b = 'my_name is "TOM"'
print(a, b)

2. 三引号''' / """:多行字符串,保留换行

s = '''
I
Love
Python
'''
print(s)

3. 空字符串 & len()

c = ""
print(len(c))
d = "abc尚学堂"
print(len(d))

三、转义字符 \

转义符功能
\n换行
\t制表符
\输出反斜杠
' "输出引号
a = 'I\nlove\nU'
print(a)
print('aabb\\cc')

四、拼接、复制

1. +拼接(仅限字符串之间)

s1 = "sxt"+"gaoqi"
s2 = "sxt""gaoqi"
print(s1)

2. *重复复制

res = "Sxt" * 3
print(res)

五、控制台输入与不换行打印

# end 修改末尾符号
print("sxt", end=' ')
print("sxt", end='##')

# input获取输入
name = input("请输入姓名:")
print(name)

六、索引取值 & replace替换

1. []索引:正向0开始,反向-1开始

a = "abcdef"
print(a[0], a[-1])
# a[2] = 'x' 报错:字符串不可修改

2. replace()生成新字符串实现替换

a = 'abcdef'
a = a.replace('c','高')
print(a)

3. str():任意数据转字符串

print(str(5.20), str(True))

七、切片 [start:end:step]

规则:左闭右开,取start,不取end

s = "abcdefghijklmnopqrstuvwxyz"
print(s[:])      # 全部
print(s[2:])     # 从下标2到末尾
print(s[:2])     # 开头到下标1
print(s[2:4])    # [2,3]
print(s[-3:])    # 最后三位
print(s[::-1])   # 字符串反转

八、split分割 / join拼接

  1. split():字符串→列表,默认空格分隔

str1 = "to be or not to be"
li = str1.split()
print(li)
  1. join():列表→字符串,海量拼接优先join,效率高于+

lst = ['sxt','sxt100','sxt200']
new_str = "*".join(lst)
print(new_str)

九、驻留机制 & in成员运算

# 常量字符串驻留,地址相同
c = "dd#"
d = "dd#"
print(c is d)

# in 判断包含
print("ab" in "abcdef")

十、字符串常用方法

1. 查询方法

text = "我是高淇,在北京尚学堂上班"
print(len(text))
print(text.startswith("我是高淇"))
print(text.endswith("上班"))
print(text.find("高"))
print(text.rfind("高"))
print(text.count("编程"))

2. 去除首尾字符 strip/lstrip/rstrip

s = "*s*x*t*"
print(s.strip("*"))
print(s.lstrip("*"))
print(s.rstrip("*"))

3. 大小写转换

a = "gaoqi love programming, love SXT"
print(a.capitalize()) #首字母大写
print(a.title())      #单词首字母大写
print(a.upper())      #全大写
print(a.lower())      #全小写
print(a.swapcase())   #大小写互换

4. 对齐排版 center/ljust/rjust

s = "SXT"
print(s.center(10,"*"))
print(s.ljust(10,"*"))

5. 判断方法 is系列

print("sxt100".isalnum())
print("1234".isdigit())
print("ABC".isupper())

十一、format格式化

1. 基础占位

# 下标占位
s1 = "名字:{0},年龄:{1}".format("高淇",18)
# 关键字占位
s2 = "名字:{name},年龄:{age}".format(name='小高',age=6)
print(s1,s2)

2. 填充对齐 ><^

print("{:*>8}".format("245")) #右对齐
print("{:*^8}".format("666"))#居中

3. 数字格式化

res = "存款:{:.2f}".format(3888.2343)
print(res)

十二、可变字符串(io.StringIO)

原生str不可变,借助io实现原地修改

import io
s = "hello, sxt"
sio = io.StringIO(s)
sio.seek(7)
sio.write("gaoqi")
print(sio.getvalue())

十三、常用类型转换

#字符与编码转换
print(chr(65), ord('A'))
#进制转换
print(hex(12), oct(12))
#字符串转进制数字
print(int('1010',2))


上一篇:

下一篇: