字符串
属于不可变数据类型,不可以直接修改原数据
字符串可以使用
单引号 '
双引号 "
三引号 ''',"""
进行包裹
a = '123'
b = "abc"
c = """123abc"""
字符串使用
name = "张三" # 将 张三 赋值给变量 name
print(name) # 打印 name 输出张三
shuzi = 1 # 将数字 1 复制给变量 shuzi
a = str(shuzi) # str方法可以将变量强制转换成字符串类型
print(type(name)) # type方法 可以检查数据是什么类型 很显然 这两个变量的内容都是字符串了
print(type(a)
索引下标切片
# 索引从0开始
# [开始:结束:步长]
name = '我喜欢你呀'
# 对应关系也就是
# 我 --- 0
# 喜 --- 1
# 欢 --- 2
# 你 --- 3
# 呀 --- 4
print(name[::1]) # 我喜欢你呀
print(name[1:]) # 喜欢你呀
print(name[::2]) # 我欢呀
print(name[1:3]) # 喜欢
print(name[::-1]) # 呀你欢喜我
字符串 ----- 增删改查
字符串 - 查
- len:查找指定字符串的长度
- count:查找字符串中指定元素出现的次数
- index:查找指定元素出现在字符串的哪个位置,找不到会报错,[需要查找的元素:开始:结束]
- find:查找指定元素出现在字符串的哪个位置,找不到不会报错 但是会返回-1
简单介绍一下 rindex rfind 区别是加了一个 “r” 意思是从右边开始查询
string = 'zhangsan'
# 通过索引下标取值 查指定下标的元素
print(string[0]) # z
print(len(string)) # 8
print(string.count('a')) # 2
print(string.index('a')) # 2
print(string.index('a',3)) # 6
print(string.find('h')) # 1
- isdigit:判断是否为纯数字
- isalpha:判断是否为纯字符
- startswith:判断开头是否是这个参数,也可以指定范围
- endswith:判断结尾是否是这个参数,也可以指定范围
- isupper:判断是否全部为大写
- islower:判断是否全部为小写
- isalnum:判断字符串中是否全都是字母或是数字
- isspace:判断字符串只包含空格
string_1 = '123'
print(string_1.isdigit()) # True
print(string_1.isalpha()) # False
string_2 = 'abcd'
print(string_2.startswith('a',1,2)) # False
print(string_2.endswith('cd',2,4)) # True
print(string_2.isupper()) # False
print(string_2.islower()) # True
print(string_2.isalnum()) # True
print(string_2.isspace()) # False
字符串 - 改
字符串属于不可变类型,不能改变原数据,所以只能将它赋值给一个新的变量
- strip:去掉字符串左右两边空格
a = ' qwer '
print(a.strip()) # qwer
# 拓展 lstrip rstrip
# lstrip:去掉左边的空格
print(a.lstrip()) # qwer... .就是空格
# rstrip:去掉右边的空格
print(a.rstrip()) # ...qwer .就是空格
- upper:全部改大写
- lower:全部改小写
a = 'qWeR'
print(a.upper()) # QWER
print(a.lower()) # qwer
- capitalize:字符串首字母大写
- title:每个单词首字母大写
c = 'hello world'
print(c.capitalize()) # Hello world
print(c.title()) # Hello World
- split:字符串切割,可以指定切割多少,split(要切割的字符串, 切割次数)
c = "onoono"
print(c.split('n') # ['o', 'o', 'o']
print(c.split('n',1)) # ['o', 'ono']
字符串 - 删
说是删,其实也是可以改的
replace:替换
replace(old, new , count)
- old: 需要替换的元素- new:替换成什么
- count:次数,替换几次,不写默认是全部
strs = 'qwert qwert'
print(strs.replace('e','y',1)) # qwyrt qwert 会将字符串里从左到右第一次出现的e 修改为y 修改一次
print(strs.replace(' ','')) # qwyrtqwert 删空格
print(strs.replace('e','')) # qwyrtqwrt 删字符
字符串的拼接
拼接符: +
str1 = 'hello'
str2 = '你好'
str3 = '2024'
str4 = str1 + str2 + str3
str4_1 = str1 + ' ' + str2 + ' ' + str3
print(str4) # hello你好2024
print(str4_1) # hello 你好 2024
占位符:%s
str1 = 'hello'
str2 = '你好'
str3 = '2024'
str4 = "%s %s %s" % (str1, str2, str3)
print(str4) # hello 你好 2024
join方法
str1 = 'hello'
str2 = '你好'
str3 = '2024'
str4 = ' '.join([str1, str2, str3]) # 需要放在方括号里面
print(str4) # hello 你好 2024
format方法
str1 = 'hello'
str2 = '你好'
str3 = '2024'
# 按照正常顺序一个接一个
str4 = '{} {} {}'.format(str1,str2,str3)
print(str4) # hello 你好 2024
# 通过下标索引来修改顺序
str5 = '{0} {2} {1}'.format(str1,str2,str3)
print(str5) # hello 2024 你好
# 赋值给一个别名 通过别名修改顺序
str6 = '{n1} {n3} {n2}'.format(n2 = str1,n1 = str2,n3 = str3)
print(str6) # 你好 2024 hello
# 字符串前面写一个f,可以直接在花括号内写变量名称
str7 = f'{str1} {str2} {str3}'
print(str7) # hello 你好 2024