python字符串操作
Posted blueteer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字符串操作相关的知识,希望对你有一定的参考价值。
1、去掉空格或特殊字符
s = \' abc \' s1 = \' abcd,\' print(s.strip()) print(s1.strip(\',\'))
可以单独去掉一侧的空格或特殊字符,使用s.lstrip() 或s.rstrip()
2、查看一个元素在字符串中出现多少次
s = \' abc abc a \' print(s.count(\'a\'))
3、查找字符串,返回该元素所在的下标
s = \' abc abc a \' print(s.index(\'a\',4))
print(s.find(\'a\'))
str.index(str, beg=0, end=len(string))中,其中str表示要检索的字符串,beg表示开始所以的位置,默认为0,end表示结束索引的位置,默认为字符串长度。
index和find都可以实现该功能,index检索不到的时候会报错;find检索不到的时候返回-1
str.finx(str, beg=0, end=len(string))用法跟index一样
4、字符串替换
s = \' abc abc a \' print(s.replace(\'a\',\'d\',2)) #a为被替换字符串,d为替换字符串,2为替换的个数
若最后的2不写,则字符串中的a全部被替换
5、字符串中的所有字母变成大写或小写字母
s = \'123abcABx\' print(s.upper()) #字母全部转换为大写 print(s.lower()) #字母全部转换为小写
6、字符串首字母大写
s = \'z123abcABx\' print(s.capitalize())
7、判断字符串以什么字母开头或以什么字母结尾,返回True或者false
s = \'z123abcABx\' print(s.startswith(\'z\')) print(s.endswith(\'.jpg\'))
参数 beg 和 end 指定值,则在指定范围内检查。范围用下标标识。print (str.startswith( \'x\', 2, 4 ))
8、判断字符串是全大写字母或全部小写字母
s = \'z123abcABx\' print(s.islower()) print(s.isupper())
9、字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值
- s.istitle() 判断是否是一个标题
- s.isdigit() 判断是否为纯数字
- s.isalpha() 判断是不是字母或者汉子,不能有数字或特殊符号,有的话则返回false
- s.isalnum()字符串里面只要没有特殊字符,就返回true
- s.isidentifier() 判断是不是一个合法的变量名,变量名不能以数字、特殊字符开头
- s.isspace() 判断是否是空格
10、字符串格式化
s = \'insert into user VALUE ({username},{password},\' \\ \'{addr},{email},{phone}); \' news = s.format(addr=\'北京\',phone=1223,email=\'niu@qq.com\', username=\'niu\',password=\'123245\') d = {\'addr\':\'北京\',\'username\':\'xiaohei\',\'password\':\'12345\',\'email\':12, "phone":\'sdfs\'} s_map =s.format_map(d) print(s_map) print(news)
Python支持格式化字符串的输出 , 尽管这样可能会用刀非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中 . 字符串格式符和 C 语言的差不多 .
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
name = \'liul\' password =123456 print(\'我是%s,密码是%s\'%(name,password))
11、字符串补位, 原字符串右对齐,前面填充0
num = \'1\' print(num.zfill(3))
12、指定分隔符对字符串进行切片拆分
s =\'user1,user2,user3,user4,user5\' print(s.split(\',\'))
s.split(‘,’) 指以逗号隔开,分隔后放进一个list中。按照某个字符串来分隔字符串,返回一个list。不传的时候默认为空格拆分。可设置分割的次数,次数用完之后后面的将不再拆分。
13、 将列表中的元素以指定的字符连接生成一个新的字符串
cars=[\'奔驰\',\'奥迪\',\'qq\',\'宝马\'] res = \',\'.join(cars) print(\',\'.join(cars)) print(res)
生成字符串,但是下面的写法要注意
cars=[\'奔驰\',\'奥迪\',\'qq\',\'宝马\'] cars_str = str(cars) print(cars_str) print(\'转成字符串后的第一个元素:\',cars_str[0])
cars_str是一个带字符串,第一个元素是[
14、字符串切片
切片取值是顾头不顾尾,取到尾巴的时候要加1,前面一个下标,后面一个下标,中间是冒号,下标从0开始时,前面可以不写
str1 = \'123abc098\' print(str1[2:5])
输出下标是2~下标是4的字符串元素
str = ’1234567′
15、字符串运算
16、字符串反转
str1 = \'123abc098\' print(str1[::-1])
17、字符串比较
相等和包含:
import operator as op str1 = \'hello\' str2 = \'0123456789\' print(op.eq(str1,str2))
str1 = \'hello\' str2 = \'helloworld\' if str1 == str2: print(\'相等\') else: print(\'不相等\')
str1 = \'hello\' str2 = \'helloworld\' if str1 in str2: print(True) else: print(False)
18、字符串连接
str1 = \'123abc098\' str2 =\'098cbd123\' print(str1+str2)
19、转义字符
20、字符串居中,不够的可用后面指定的字符串补齐
# 可指定需要用什么字符补齐,也可留空,显示为空格 s1=\'123test\' print(s1.center(30,\'-\')) 输出: -----------123test------------
以上是关于python字符串操作的主要内容,如果未能解决你的问题,请参考以下文章
[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段