python字符串
字符串
定义方式:
- 单引号定义字符串 ‘ ABC’
- 双引号定义字符串 “ ABC”
- 三引号定义字符串 ''' ABC'''或者""" ABC"""
- 定义时三种引号可以互相嵌套
转义字符
一个普通的字符,通过转义符 \ 进行转义或续行
# 续行
vars='123'\
'456'
print(vars)
# \n 换行
print('床前明月光,\n疑是地上霜')
# \r 光标的起始位置(只打印疑是地上霜)
print('床前明月光,\r疑是地上霜')
# \t 制表符(床前明月光, 疑是地上霜)
print('床前明月光,\t疑是地上霜')
# \b 退格符,回删一个字符(床前明月光疑是地上霜)
print('床前明月光,\b疑是地上霜')
# \\b双斜线代表反转义(床前明月光,\n疑是地上霜)
print('床前明月光,\\n疑是地上霜')
# r取消转义(床前明月光,\n疑是地上霜)
print(r'床前明月光,\n疑是地上霜')
字符串的操作
字符串+操作
字符串*操作
字符串[]切片操作
# 字符串拼接(床前明月光,疑是地上霜。举头望明月,低头思故乡。)
vara='床前明月光,疑是地上霜。'
varb='举头望明月,低头思故乡。'
print(vara+varb)
# 字符串*重复操作(床前明月光,床前明月光,床前明月光,床前明月光,床前明月光,)
varc='床前明月光,'*5
print(varc)
# 字符串[]切片操作
"""
使用方式:
[开始值:结束值:步进值]
开始值默认为0,结束值默认最后一个下标,步进值默认为1
逻辑:
包前不包后
"""
vard='床前明月光,疑是地上霜。'
print(vard[2:5])
print(vard[1:5:2])
print(vard[::])# 从头取到尾
print(vard[::2])# 从头取到尾,每隔一个取一个
print(vard[::-2])# 尾头取到头,每隔一个取一个
print(vard[::-1])# 翻转字符串
字符串格式化
format() 格式化字符串
# format()格式化字符串
vara='床前'
varb='{}明月光,疑是地上霜。'.format(vara) # 床前明月光,疑是地上霜。
print(vard)
varc='{}明月光,疑是地{}'.format(vara,'上霜。') # 床前明月光,疑是地上霜。
print(varc)
# 通过索引传参
vard='{0}明月光,疑是地{2}'.format(vara,'aaa','上霜。') # 床前明月光,疑是地上霜。
print(vard)
# f简化方法
print(f'{vara}明月光,疑是地上霜。') # 床前明月光,疑是地上霜。
# 通过关键字传参
vard='{a}明月光,疑是地{b}'.format(a=vara,b='上霜。') # 床前明月光,疑是地上霜。
print(vard)
#容器传参
vard='a:{0[0]},b:{0[1]},c:{0[2]}'.format(['a','b','c']) # a:a,b:b,c:c
print(vard)
data={'a':'床前','b':'上霜'}
vare='{a}明月光,疑是地{b}'.format(**data) # 床前明月光,疑是地上霜。
print(vare)
#f方法
varf=f'{data["a"]}明月光,疑是地{data["b"]}' # 床前明月光,疑是地上霜。
print(varf)
#限制小数点后展示多少位
varg='圆周率:{:.2f}'.format(3.1415926) # 圆周率:3.14
print(varg)
字符串内置函数
# str.capitalize() 转成首字母大写
vara='i love you'
res=vara.capitalize()
print(res) # I love you
# str.title() 每个单词首字母大写
res=vara.title()
print(res) #I Love You
# str.upper() 英文字母全部转成大写
varb='i love you '
res=varb.upper()
print(res) # I LOVE YOU
# str.lower() 英文字母全部转成小写
res=vara.lower()
print(res) # i love you
# str.swapcase() # 大小写翻转
varc='I love You'
res=varc.swapcase()
print(res) # i LOVE yOU
#字符检测方法
# str.isupper() 检测当字符串是否全又大写组成
var='I LOVE YOU'
print(var.isupper()) # True
# str.islower()
var='i love you'
print(var.islower()) #True
# str.istitle() 检测字符串英文是否符合title要求
var='I Lvoe You' # True
print(var.istitle())
#str.isalnum() 检测字符串是否全部由字符组成
var ='i love you' #False 有空格,返回False
print(var.isalnum())
#str.isalpha() 检测字符串是否由中英文组成(不包含其它字符,例如数字)
num='123' # False,字符串中有数字
print(num.isalpha())
# str.isdigit() #检测字符串是否有纯数字组成
num='123' # True,检测字符串中是否由纯数字组成
print(num.isdigit())
#str.isspace() 检测是否全由空格组成
str=' ' # True
print(str.isspace())
#startswith 检测字符串是否由字符开头
var='i love you' # True
print(var.startswith('i',0)) #默认为0位置开始检查,下标可以不需要填写
# endswith检测字符串是否由指定字符结尾
str='i love you' # True
print(str.endswith('you'))
print(str.endswith('love',0,6))
字符串查找与操作(重点)
查找操作
# 检测字符是否存在字符串中
str='i love you'
print('love' in str)
# 获取字符串长度
str='i love python'
print(len(str))
# str.find()从前向后查找,获取指定字符在字符串中的索引位置,未找到则返回 -1
str='i love python and love java'
print(str.find('love')) # 只找第love一次出现的位置
print(str.find('love',7,-3)) # 指定查找位置
print(str.find('love',7)) # 指定查找位置
print(str.find('php')) # 没有找到,返回-1
# str.rfind() 从后向前查找
str='i love python and love java'
print(str.rfind('love'))
print(str.rfind('love',0,10))# 指定查找位置
#str.index()和find方法相同,但如果没找到会报错
str='i love python and love java'
print(str.index('love'))
#print(str.index('php')) #报错:substring not found
# str.index()和rfind方法相同,但如果没找到会报错
str='i love python and love java'
print(str.rindex('love'))
#print(str.rindex('php')) #报错:substring not found
# str.count() 计算字符在字符串中出现的次数
str='i love python and love java'
print(str.count('a'))
print(str.count('love'))
print(str.count('love',0,-1))
字符串操作
# str.split()按照指定字符,把字符串分割成一个列表
# ['i', 'love', 'you', 'python']
str='i love you python'
print(str.split(' '))
# 从前向后割两次['i', 'love', 'you python']
print(str.split(' ',2))
# 从后向前分割两次['i love', 'you', 'python']
str='i love you python'
print(str.rsplit(' ',2))
#取出value值:he、10、man
str='name=he&age=10&sex=man'
res=str.split('&')
for i in res:
resi=i.split('=')
print(resi.pop())
# str.join() 按照指定的字符,把容器中的数据连接成字符串
arry=['i', 'love', 'you', 'python']
print('-'.join(arry)) # i-love-you-python
# str.strip() 去除左右两侧指定字符
str=' i love you'
print(str.strip(' ')) # 只去除两侧空格,中间空格无法去除i love you
# str.lstrip() 去除字符串左侧指定字符
str=' i love python '
print(str.lstrip(' '))
# str.rstrip() 去除字符串右侧指定字符
str=' i love python '
print(str.rstrip(' '))
# str.replace() 替换
str='i love python and i love java'
print(str.replace(' ','_')) # i_love_python_and_i_love_java
#找到指定字符并且替换
print(str.replace('java','php',1)) # i love python and i love php
print(str.replace('a','A',2)) # i love python And i love jAva