python字符串相关操作

python字符串

字符串

定义方式:

  • 单引号定义字符串 ‘ ABC’
  • 双引号定义字符串 “ ABC”
  • 三引号定义字符串 ''' ABC'''或者""" ABC"""
  • 定义时三种引号可以互相嵌套

转义字符

一个普通的字符,通过转义符 进行转义或续行

# 续行
vars='123'
    '456'
print(vars)
# 
 换行
print('床前明月光,
疑是地上霜')
# 
 光标的起始位置(只打印疑是地上霜)
print('床前明月光,
疑是地上霜')
# 	 制表符(床前明月光,    疑是地上霜)
print('床前明月光,	疑是地上霜')
#  退格符,回删一个字符(床前明月光疑是地上霜)
print('床前明月光,疑是地上霜')
# \b双斜线代表反转义(床前明月光,
疑是地上霜)
print('床前明月光,\n疑是地上霜')
# r取消转义(床前明月光,
疑是地上霜)
print(r'床前明月光,
疑是地上霜')

字符串的操作

字符串+操作

字符串*操作

字符串[]切片操作

# 字符串拼接(床前明月光,疑是地上霜。举头望明月,低头思故乡。)
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
原文地址:https://www.cnblogs.com/hekaiqiaq/p/15534221.html