字符串运算
重复运算 *
拼接运算 +
重复运算会将字符串重复输出
a = 'hello, world'
print(a * 5) # hello, worldhello, worldhello, worldhello, worldhello, world
拼接运算就是把后者加到前者的后面,形成一个新的字符串
s1 = 'jkl'
s2 = '阿水'
s3 = s1+s2
print(s3) # jkl阿水
成员运算 not in
in
print('or' in a) # True
print('ko' in a) # False
比较运算(比较字符串内容—>比较字符编码)
b = 'hello, world'
print(a == b) # True
print(a != b) # False
c = 'goodbye, world'
print(b > c) # h的编码大于g的,True
d = 'everyday'
print(d >= c) # g的编码大于e的,False
获取长度使用len()
print(len(a)) # 输出字符串的长度
循环遍历字符串的每个字符
for i in range(len(a)):
print(a[i])
for i in a:
print(i)
不允许进行赋值操作
字符串是不可变类型,当对字符串进行赋值操作会报错: **TypeError: 'str' object does not support item assignment**
a[0] = 'l' # TypeError: 'str' object does not support item assignment
索引和切片
print(a) # hello, world
print(a[0]) # h
print(a[-1]) # d
print(a[0:3]) # hel
print(a[0:7:2]) # hl0 注意空格也是一个字符,所以o的后面接上一个空格
print(a[::-1]) # 反转:dlrow ,olleh
print(a[8:3:-1]) # ow ,o
在进行字符串的操作是需要注意空格
下面的方法都未对原字符串操作,不会发生改变
全大写upper()
将字符串的字母全部改成大写
a = 'hello, world123'
print(a.upper()) # # HELLO, WORLD123
全小写lower()
将字母全部改为小写
print(a.lower()) # # hello, world123
首字母大写capitalize()
把字符串中的第一个字母大写
print(a.capitalize()) # Hello, world123
每个单词首字母大写 title()
print(a.title()) # Hello, World123
判断字符串属性(返回布尔类型),注意空格,标点符号
c = '李华 '
b = 'abc123 ' # 这里后面跟上了一个空格
判断是否都是数字isdigit()
print(b.isdigit()) # False
判断字符串是否由字母组成isalpha()
print(b.isalpha()) # False
判断是否字母数字组成isalnum()
print(b.isalnum()) # False
判断是否ascii组成isascii()
(python3.7以上才会有这个)
print(b.isascii()) # True
print(c.isascii()) # False,汉字不属于ascii的范畴
判断由啥开头startswith()
,由啥结尾endswith()
print(b.startswith('abc')) # True
print(b.endswith('23')) # False
原字符串未改变
在字符串中查找有没有字串的操作
a = 'Oh apple, i love apple'
index()
:从左往右查找,找到返回索引,反之报错,返回从左往右第一次出现的索引位置,可指定查找的初始位置
# 返回的是指定字符串的首字母第一次出现的索引
print(a.index('apple')) # 3
print(a.index('apple', 10)) # 17 10表示从下标为10的位置开始查找
rindex()
:返回从右往左第一次出现的索引,索引依旧从左开始
print(a.rindex('apple')) # 17
# 不存在则报错
print(a.index('banana'))
# ValueError: substring not found
find()
与上述index()
用法相同,rfind()
在找不到字串的时候返回-1
print(a.find('banana')) # -1