许多知识学了又忘,忘了又学,这次写成博客,当做学习笔记了,时常复习。
序列:由其它对象组成的有序集合。字符串可以看做是单字符的字符串组成的序列,按照从左到右的顺序。
不可变对象:字符串一旦定义,则不会被改变,每次对字符串的更改操作实际是生成了新的字符串指向变量。
s1 = 'abc' ;s2 = 'def'
s1+s2 = 'abcdef';s1*2 = 'abcabc'
转义字符的长度认为是一个字符。即len('na') = 2
转义字符意义(在末尾时)续行符反斜杠\’单引号"双引号n换行b退格a响铃,得在命令行才会响t横向制表符v纵向制表符r回车f换页 或者 00空 yy八进制xyy十六进制 字符串前加u,b,rs = u'xxx' 加u表示unicode编码
s = b'xxx' 加b表示ASCII码
s = r'xxx' 加r防止转义
s = 'abc' for i in s:print(i,end=' ') >>>a b c s = 'abcde' print('abc'in s) print('aac'in s) >>> True False#in的结果返回布尔值 123456789 索引,切片
切片
s[start : end : step]
start缺省值为0,即从头开始
end缺省值为len(s)即到结尾
step缺省值为 1
s = 'abc123' print(s[1],s[-3],s[-6]) >>>b 1 a#索引可以正序倒序 s = 'abc123' print(s[:],s[3:],s[:3],s[:-1],s[::2]) >>>abc123 123 abc abc12 ac2 1234567 .mothod 方法作用备注s.capitalize()实现首字母大写,其余变成小写made IN CHina >>> Made in chinas.casefold()转化为小写,对德语等也有效s.center()字符串居中s.center(width[, fillchar])fillchar缺省值为空格s.count()统计s.count(substr[,start, end]);start>end会返回0,不会抛出异常s.count('')=len(s)+1;start,end可以为负数。s.encode()以指定方式编码,返回bytes类型s.encode([encoding][,errors])encoding默认为utf-8s.decode()以指定方式解码同上s.endswith()是否以指定字符串结尾s.endwith(substr[,start,end])返回True或False,越界与count相同s.expandtabs()将tab转为空格字符s.expandtabs(tabsize=8)默认是8个空格,从字符开始数,够8个补齐空格s.find()查找s.find(str[,start,end]) 返回查找子字符串的第一个位置,找不到返回-1s.format()格式化在下面字符串格式化详细解释s.index()索引s.index(str[,start,end])返回查找到子字符串的第一个索引,没有则抛出异常is系列方法执行判断返回True or Falses.isalnum()字母和数字s.isalpha()字母s.isdecimal()是否仅含十进制字符(只存在unicode编码下)True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字Error: byte数字(单字节)s.isdigit()是否只由数字构成True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无s.isnumeric()只要是数字就能识别True: Unicode数字,全角数字(双字节),罗马数字,汉字数字False: 无Error: byte数字(单字节)s.isidentifier()是否为标识符s.islower()字母是否全为小写s.isprintable()是否为可打印字符含有制表符换行符之类的功能字符就返回Falses.isspace()是否为空字符空格,换行,回车,缩进,都是Trues.istitle()是否为标题首字母大写,其余字母小写,以特殊字符为分割s.issupper()字母是否都为大写s.join()以字符为间隔符组合str.join(object)object是可迭代对象,元组,字典,列表,字符串 函数返回字符串s.ljust()左对齐,默认空格填充s.ljust(lens[,str]),长度小于原字符串则返回原字符串s.lower()转换为小写只针对英语字符s.lstrip()从左去除指定字符,默认为空格s.lstrip([char])会从左去除子字符串char中所有元素,直到不是s.maketrans()返回一个字符串映射表(dic)s.maketrans(intab,outtab[,deltab]),datatbl会映射到None.参数也可以用字典s.translate()一般与maketrans一起使用,返回修改后的字符串s.partition()以指定字符串分割,返回三组s.partition(str),如果在开头则第一个元素为空字符s.replace()替换字符串s.replace(ord,new[,times])time默认是全部替换s.rfind()从右开始,同finds.rindex()从右开始索引,同indexs.rjust()右对齐,默认空格填充s.rapartition()从右分割,其他同partitions.rsplit()从右开始分割同splits.rstrip()从右去除指定字符串s.split()以指定字符串分割字符s.split(str[,times]) 次数默认是-1,分割所有,值得注意的是,如果分隔符在开头或者末尾,会分割出一个空字符串;返回的对象是一个列表s.splitlines()以换行n,r,rn作为分隔符分割s.splitlines([keepends])keepends默认为False,不保留换行符s.startswith()判断是否以子字符串开头返回True或Falses.strip()跟lstrip一样,从两边去除s.swapcase()大小写进行转换s.title()每个单词首字母大写s.upper()每个字母变成大写s.zfill()用0填充到指定长度s.zfill(width) 等同于s.rjust('0',width) 格式化
%控制格式化
跟C语言中的printf差不多,通过%控制输出的长度,类型
下面通过几个例子来了解一下:
基于元组:
print('今天是 %d 年 %d 月 %d 日' %(2020,1,3)) >>>今天是 2020 年 1 月 3 日 tuple1 = (2020,1,3) print('今天是 %d 年 %d 月 %d 日' %tuple1) >>>今天是 2020 年 1 月 3 日 123456
基于字典:
dic1=dict(year=2020,month=1,day=3) print('今天是%(year)d 年 %(month)d 月 %(day)d 日'%{'year': 2020, 'month': 1, 'day': 3}) print('今天是%(year)d 年 %(month)d 月 %(day)d 日'%dic1) >>> 今天是2020 年 1 月 3 日 今天是2020 年 1 月 3 日 123456
格式控制:
print('控制长度为5:"%5d"'%123) >>>控制长度为5:" 123" print("控制长度为5,用0填充:%05d"%123) >>>控制长度为5,用0填充:00123 #左对齐,右边补了空格 print("控制长度为5,左对齐:%-5dEND"%123) >>>控制长度为5,左对齐,用0填充:123 END #这里小数点前的整数代表的是整个长度,而不是整数部分的长度 print("控制小数位:%08.4f"%1.2) >>>控制小数位:001.2000 1234567891011121314 符号意义s字符串格式c字符,int会被转化为ASCII码d十进制整数,可以把二进制八进制十六进制自动转换i跟d一样,没找到区别,大佬们指点一下u已经废弃了,现在作用跟d相同o八进制整数x十六进制整数X十六进制整数,字母是大写e带有指数的浮点数E同e,字母大写f十进制浮点数F同f,字母大写g同e,fG同E,F%转义%,编码为%%
.format方法格式化
利用花括号{}来指定替换目标及要插入的参数
无序:
print('Today is {}--{}--{}'.format(2020,1,3)) >>>Today is 2020--1--3 12
有序:
print('Today is {0}--{1}--{2}'.format(2020,1,3)) >>>Today is 2020--1--3 print('Today is {1}--{0}--{2}'.format(1,2020,3)) >>>Today is 2020--1--3 1234
通过字典:
print('Today is {years}--{months}--{days}'.format(years=2020,months=1,days=3)) >>>Today is 2020--1--3 12
通过列表:
list1 = [2020,1,8] print('Today is {0[0]}--{0[1]}--{0[2]}'.format(list1)) >>>Today is 2020--1--8 123
控制格式:大体上与%相似,这里用:后的语句来控制
print('π的值是{:08.4f}'.format(3.14159286)) >>>π的值是003.1416 12
f函数
a=1 b=4 print(f'a={a},b={b}') >>>a=1,b=4 1234
相关知识
Python中is和==的区别详解
KMP 字符串匹配 SDNU 1100 字符串查找 HDU 2087 剪花布条
字符串
mysql查询字符串不包含
字符串查询算法
寻找字符串
字符串相关问题
字符串 (C++/CX)
Linux内字符串无法显示原因解析 (linux字符串不显示) – 后浪云
字符串常用方法
网址: 1.字符串详解 https://m.huajiangbk.com/newsview566669.html
上一篇: 验证码图片识别训练记录 |
下一篇: 汉字“花”的起源、演变过程 |