字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。
- 1.单引号和双引号均可,三引号
- 2.三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。
v1 = "人生苦短"
v2 = '人生苦短'
v3 = "人'生苦短"
v4 = '人"生苦短'
v5 = """
吵架都是我的错,
因为女友真不错。
"""
内置方法
1.判断字符串是否以 XXX 开头
v1 = "学编程赚大钱,真好"
result = v1.startswith("学编程赚大钱") # True
print(result) # 值为True
2.判断字符串是否以 XXX 结尾
v1 = "学编程赚大钱,真好"
result = v1.endswith("真好") # True
print(result) # 值为True
3.判断字符串是否是数字
是否是十进制整数
# isdigit还会判断其它数字,如①,因为推荐使用isdecimal
v1 = "123"
print(v1.isdecimal()) # True
print(v1.isdigit()) # True
v2 = "①"
print(v2.isdecimal()) # False
print(v2.isdigit()) # True
4.去除字符串两边的 空格、换行符、制表符
msg = " H e ll o啊,大哥 "
data = msg.strip()
print(data) # 将msg两边的空白去掉,得到"Hello啊,大哥"
msg = " Hello啊,大哥 "
data = msg.lstrip()
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥 "
msg = " Hello啊,大哥 "
data = msg.rstrip()
print(data) # 将msg两边的空白去掉,得到" H e ll o啊,大哥"
再补充:去除字符串两边指定的内容
msg = "哥H e ll o啊,大哥"
data = msg.strip("哥")
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大"
msg = "哥H e ll o啊,大哥"
data = msg.lstrip("哥")
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥"
msg = "哥H e ll o啊,大哥"
data = msg.rstrip("哥")
print(data) # 将msg两边的空白去掉,得到"哥H e ll o啊,大"
5. 字符串变大小写
字符串变大写
msg = "my name is David queen"
data = msg.upper()
print(msg) # my name is David queen
print(data) # 输出为:MY NAME IS DAVID QUEEN
字符串变小写
msg = "My Name Is David Queen"
data = msg.lower()
print(data) # 输出为:my name is david queen
6.字符串内容替换
data = "你是个好人,但是好人不合适我"
value = data.replace("好人","贱人")
print(data) # "你是个好人,但是好人不合适我"
print(value) # "你是个贱人,但是贱人不合适我"
7.字符串切割
得到一个列表
data = "沐风|QQ|598779784"
result = data.split('|') # ["沐风","QQ","598779784"]
print(data) # "沐风|QQ|598779784"
print(result) # 输出 ["沐风","QQ","598779784"] 根据特定字符切开之后保存在列表中,方便以后的操作
8.字符串拼接
得到一个新的字符串
data_list = ["mufeng", "是", "大帅比"]
v1 = "_".join(data_list) # mufeng_是_大帅比
print(v1)
9.格式化字符串
format函数不会修改原来的字符串,而是复制得到一个新的字符串
name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
data = name.format("老王", "护士", "嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
print('*' * 21)
name = "{1}的喜欢干很多行业,例如有:{1}、{2} 等"
data = name.format("老王", "护士", "嫩模")
print(data) # 护士的喜欢干很多行业,例如有:护士、嫩模 等
print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
print('*' * 21)
name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
data = name.format(name="老王", h1="护士", h2="嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
其它操作
1.相加
字符串 + 字符串
v1 = "mf" + "大sb"
print(v1) # mf大sb
2.相乘
字符串 * 整数
data = "饺子" * 3
print(data) # 饺子
3.长度
data = "嫂子满身大汗"
value = len(data)
print(value) # 6
4.索引
message = "来做点py交易呀"
# 0 1 2345 6 7
# ... -3 -2 -1
print(message[0]) # "来"
print(message[1]) # "做"
print(message[2]) # "点"
print(message[-1]) # 呀
print(message[-2]) # 呀
print(message[-3]) # 呀
注意:字符串中是能通过索引取值,无法修改值。
5.切片
message = "来做点py交易呀"
print(message[0:2]) # "来做"
print(message[3:7]) # "py交易"
print( message[3:] ) # "py交易呀"
print( message[:5] ) # "来做点py"
print(message[4:-1]) # "y交易"
print(message[4:-2]) # "y交"
print( message[4:len(message)] ) # "y交易呀"
6.步长
name = "生活不是电影,生活比电影苦"
print( name[ 0:5:2 ] ) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
print( name[ :8:2 ] ) # 输出:生不电, 【区间范围的前面不写则表示起始范围为0开始】
print( name[ 2::3 ] ) # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】
print( name[ ::2 ] ) # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
print( name[ 8:1:-1 ] ) # 输出:活生,影电是不 【倒序】
name = "生活不是电影,生活比电影苦"
print(name[8:1:-1]) # 输出:活生,影电是不 【倒序】
print(name[-1:1:-1]) # 输出:苦影电比活生,影电是不 【倒序】
# 面试题:给你一个字符串,请将这个字符串翻转。
value = name[-1::-1]
print(value) # 苦影电比活生,影电是不活生
7.遍历
# while
message = "来做点py交易呀"
index = 0
while index < len(message):
value = message[index]
print(value)
index += 1
# for
message = "来做点py交易呀"
for char in message:
print(char)
# for
message = "来做点py交易呀"
for i in range( len(message) ): # [0,1,2,3,4,5,6,7]
print(message[i])
类型转换
字符串与数字互转
a = 1
stra = str(a)
print(stra, type(stra)) # 1 <class 'str'>
inta = int(stra)
print(inta, type(inta)) # 1 <class 'int'>
list转str
list1 = [ '1', '2', '3' ]
print(''.join(list1)) # 123
tuple转str
tuple1 = ( '1', '2', '3' )
print(''.join(list1)) # 123