字符串是个序列,而且是不可变的,是个字面常量,一旦定义好,这个字符串就不能动了,加出来是个新的字符串,在内存中地址完全不一样,
是一个个字符组成的有序的序列,可迭代
有序就可以编号,就从0开始,也支持负索引
到目前为止,学的,可变的只有列表
不可变的有元组,字符串-
这三个都是sequence序列
不想转义就加r前缀,三引号其实是可以换行的
有序就可以下标,字符串虽然只读但是可以迭代,可迭代对象在python3中增强了很多
join方法其实是个对可迭代对象进行操作,但要求可迭代对象里面的元素必须是字符串才能加,不是字符串,就抛出异常了
几乎所有对象都可以转换成字符串(所有对象应该都有一种字符串的表达形式,)
加法只能返回给你一个新的字符串
**字符串分割函数分为两大类
1.split 可以切多次
2.partition 一刀两断,如果就切一刀,一般使用partition **
split具体有哪些方法
不制定分隔符,是用尽可能长的空白字符串作为分隔符
split的特点就是分隔符会被切掉,不要了
大多数都是处理字符串的,今天讲的都是必须掌握的
还可以按行切
一般换行符都是\n ,\r ,\r\n,
切完之后,分成一行行数据,每一行就是列表中的元素
partition切完之后就是三元素的元组,前后部分,中间分隔符,一刀两段
字符串操作不好,跟你的效率息息相关,必须要知道耗时还是效率高
一般把用户输入的部分,全部大写或者小写,对中文没什么用
大写转小写,小写转小写
title标题的每个单词都大写
首字母大写
capitalize用大写字母书写(或印刷); 把…首字母大写; 变卖资产; 变现; 为…提供运营资本(或资金);
是默认以空格居中的,也可以换填充字符
左对齐右对齐,默认用空格对齐
一般也不是用命令行来对齐都是写一个窗口来进行对齐的,很少使用到,了解即可
查看replace如何使用
箭头向左移动就不会再退回去了
所以只能替换一个pw
替换2次,上线200次,但是找到只能替换3次
replace不是替换原字符串,a的字符串是不可变,是生成一个新的字符串给你的
把前后的空白字符都去掉了
左右去空白字符
两端都去掉空格、里面可以写多个字符s
从两端找,空格和\t
\n在里面碰不到
、从两端找尽量多的字符来移除
返回一个新的字符串
空白字符串是有空白的,空串是’'什么也没有的
sub子字符串,
从右边开始找也是正索引
不返回负数是有原因的,因为找不到
find可以指定区间,从6开始局找不到,返回-1
指定范围。从6开始到-1结束,m刚好在-1上,但是找的时候是不包含-1,所以没找到
如果不用find来找位置,还有很多种思路
用split切开,但是其实find的效率未必高
index如果找不到为抛出异常
-1大于-10,使用坐标系描述更好,
index和find很像,index在一个区间找一个子串,是find的翻版,如果找不到会抛出异常
find函数,好处就是不会给你抛出异常,会给你返回-1
index会抛出异常,需要写异常处理,否则程序崩溃
所以推荐使用find,index在字符串能不用就不用,两者找到了都返回索引(只返回第一个找到位置的索引),没找到,一个返回-1一个返回异常
index和find的时间复杂度
找子串,看里面出现了多少次
自己写可以先判断b后面是不是跟c
但count是从前往后找,第一个b后面是否是c,继续向后找
字符串以什么开头以什么结尾,比如统一前缀,或者文件类型的后缀
从哪开始,一般都不写到哪里结束
左前缀一般可以用find替代
startswith其实内部实现就应该用find
find用起来也可以,最起码不会抛出异常
是字母和数字吗
是否是字母
是否是10进制的数字
可以优先使用digit,0-9
判断是否标识符,字母,数字,下划线
有时候经常使用正则表达式,就不太使用这些,比如是否包含空白字符
格式化字符串,就可以给到你想要的字符串
加法可以得到一个新的字符串
打印格式有两种风格
printf-style formatting,来自于c语言
格式要求,
占位符:使用%和格式字符组成,例如%s(以字符串形式输出)、%d(转换成数字,输出)等
占位符还可以插入修饰字符%03d,d代表把数据按照数字转换,3是长度,站位,03表示如果占不满三个就补0,比如001,002
前面是格式定义format%values(值可以是对象,也可以是和你格式化字符串数目相等的一个元组,也可以是字典)
**(20,)是一个元素的元组
**
出现多个空就需要用集合类型
前面只有一个占位符,后面是一个元组就需要遍历
转换成数字和字符都可以,%s,%d
百分之输出的问题
这个3称为宽度,但是宽度也不能实现数据的有效的东西,宽度不能影响数字本身的表达
.2表示精度,精度跟小数点有关
简单的做四舍五入
直接写。3代表精度如何,小数点后要几位
一般不能控制前面的整数部分,没办法控制,后面的精度是可以控制的
这是自己拼的
%x转换成16进制表达
要么自己拼要么用#号
-5向左对齐,就不能再后面补0
前面的0都是无效的0
最常用的就是%d
这些都是c风格的,这些是在2.5之前用的比较多
**format、函数功能更加强大
这里面可以写任何你想写的东西,返回一个新的string
split返回一个切的字符串的列表
partition,切完之后还是字符串
**
后面其实是个元组,前面的{}代表0,1,一次填入即可
如果server就填入名字,写了序号就可以按顺序加入
现在选中部分算一个参数,一个参数填两个空,好像出问题了
隐含着写0和1
现在就是整体称为一个元组里的一个元素,放在args里,元组套元组
会报错
打印两个索引为0
两层嵌套
可以访问对象
字符串100就是可以索引的
对齐打印比较简单
左对齐2个
除了能补0还能补其他符号
默认空格符
:d十进制,:x16进制小写方式,:o8进制,:b二进制
#号有特殊符号,可以区分是几进制
#
希望以什么格式输出
16进制占两位(:02X)
得到一个16进制数字
通用方式打印
浮点数精度多一位
占10个位置
不够可以补0
、
长度就需要用精度来控制,用的比较多
百分号表示后三位
python3希望你用format