29、字符串运算符

小白量化 2025-12-09 16:05:25 39 举报

1、 字符串运算符

1.1  +:字符串拼接

# 示例
print(1+1) # 2
print('1' + '1')   # '11'
print("美女" + "你好呀")   # "美女你好呀"
print('2' + 2)    # TypeError: can only concatenate str (not "int") to str

1.2  *:字符串重复

# 示例
print("哈哈哈" * 6)
print("你好\n" * 5)

1.3 成员运算符【公共操作,列表、元组、字典、集合等都可以使用】
(1)作用
检查序列中是否包含某个元素。如检查字符串中是否包含某个子串
(2)运算符
① in:如果包含,则返回True;否则返回False;
② not in:如果不包含,则返回True;否则返回False;

# 示例
name = "abcdefg"
print("a" in name)       # True
print("abc" in name)     # True
print("ac" not in name)  # True
print("bc" not in name)    # False

1.4 索引【下标】   --公共操作,字符串、列表、元组都可以使用

(1) 作用
快速定位并获取字符串中特定位置的元素
(2)语法格式
序列[索引]

# 示例
name = "abc"
# 从左往右,从0开始
print(name[0])
print(name[1])
print(name[2])
print(name[3])   # IndexError: string index out of range  超出下标范围会报错
# 从右往左,从-1开始
print(name[-1])
print(name[-2])
print(name[-3])
print(name[-4])   # IndexError: string index out of range

(3)切片

① 含义
它允许你获取序列中的一部分元素
② 语法
[起始索引: 结束索引: 步长]

# 示例1
st = "abcdefghijklmnopqrstuvwxyz"
print(st[:])    # abcdefghijklmnopqrstuvwxyz  全部切取
print(st[5:])   # fghijklmnopqrstuvwxyz
print(st[:5])   # abcde  遵循包前不包后规则,包含起始位置,但不包含结束位置,会在结束位置的前一位结束
print(st[1:8])   # bcdefgh
print(st[::3]) # 0(a)  0+3(d) 0+3+3(g)  0+3+3+3(j)  0+3+3+3+3(m)  0+3+3+3+3+3(p)  0+3+3+3+3+3+3(s)  0+3+3+3+3+3+3+3(v)  0+3+3+3+3+3+3+3+3(y)

注意:步长的绝对值大小决定切取数据的间隔,正负号决定切取方向。正数表示从左往右取值,负数表示从右往左取值

# 示例2
st = 'abcdefghijklmn'
print(st[::-3])
# 步长为负数,从右往左取值
# -1(n) -1-3(k) -1-3-3(h) -1-3-3-3(e) -1-3-3-3-3(b)
print(st[1:7:-2])  # 1(b) ->  7(h):从左往右 -2:从右往左 方向不一致时,切取为空(字符)

起始位置到结束位置的方向 必须与 步长规定的方向一致,否则切取为空。

# 示例3
print(st[-5:-2:-1])
# -5(j) -> -2(m):从左往右;-1:从右往左;方向不一致时,切取为空(字符)
print(st[-1:-10:-3])
# -1(n) -> -10(e):从右往左;-3:从右往左;方向一致,可以切取 -1(n) -1-3(k) -1-3-3(h)


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0