博客
关于我
Python基础之str常用方法、for循环
阅读量:450 次
发布时间:2019-03-06

本文共 3181 字,大约阅读时间需要 10 分钟。

初学python,有些地方可能还不够明白,希望各位看官发现我的错误后留言指正!

一.字符串的索引与切片

  注:字符串的第一位的索引值是0

  1.索引案例

1 s = 'abcd'2 s1 = s[0]3 print(s1)#输出a

  2.切片案例,注:顾头不顾尾,即指定的最后一个索引的字符取不到

1 s = 'abcd' 2 s2 = s[0:3] 3 print(s2)4 #输出abc,不包括下标是3的d

  3.若字符串非常长,而且要取后面的字符串,可以从最后一位(下标是-1)开始取

1 s = 'abcd'2 s3 = s[-1]3 print(s3)#输出d

  4.取整个字符串

1 s = 'abcd'2  s4 = s[0:]3  s5 = s[:] 4 print(s4,s5)#都会输出整个字符串5 6  print(s[0:0])#输出一个空字符串,不会报错

  5.步长:默认步长为1,若需要间隔固定的间距取字符,则步长=间距+1 ,格式:[首下标:尾下标:步长]

1 s = 'abcde'2 s6 = s[0:4:2]3 print(s6)#输出ac

  6.逆序

1 s = 'abcde'2 s7 =s[-1::-1]3 #或者s7 =s[::-1]4 print(s7)#输出edcba

  7.指定某个下标开始逆序

1 s = 'abcde'2 s8 =s[3::-1]3 print(s8)#输出dcba

 

二、大写、小写转换

  1.首字母大写

1 s='abcd'2 s1 = s.capitalize()#首字母大写

  2.首字母大写:用空格隔开或者其他特殊字符、数字隔开也可以

1 s = 'sun ton-alex*egon'2 s1=s.title()#将s和t转换成大写3 print(s1)#输出Sun Ton-Alex*Egon

  3.全部转大写、小写

1 s='abcd'2 s2 = s.upper()#转换大写3 s3 = s.lower()#转换小写

其用处体现在:输入验证码时,不区分大小写

  4.大小写翻转

1 s='AbCd'2 s.swapcase()#小写转大写、大写转小写

 

三.字符串居中、空白填充

1 s='AAA'2 s1 = s.center(20)#总长度为20,将字符串居中3 s2 = s.center(20,'*')#居中,并且两边的用'*'填充

 

 四.\t补位

s='ab\tcd's1 = s.expandtabs()print(s1)#输出ab      cd,中间有六个空格,总共八位,\t前面的ab占两位,所以补六位,大于8位的#补16位

 

五.公共方法-字符串长度,列表长度、字典长度……

1 s = 'abcd我'2 print(len(s))#输出5,中文也算一个字符

 

六.判断以单个字符或多个字符开头、结尾

1 s = 'abcd'2 s1 = s.startswith('a')3 s2 = s.startswith('ab')4 s3 = s.startswith('abc')5 print(s1,s2,s3)#都返回True6 7 #判断结尾的字符:同理,只是写法变了8 s = 'abcd'9 s1 = s.endswith()

  1.将字符串切片后,判断是否以某字符开头:

1 s = 'abcd'2 s1 = s.startswith('b',1,3)#判断切片后的'bc'是否以字符'b'开头

 

七.找出字符串里是否有某个字符或连续的字符串,若找到则返回其第一个字符的索引(下标),找不到则返回-1

1 s = 'abcd'2 s1 = s.find('c')3 print(s1)#输出2

利用for循环找到字符串里所有指定字符的下标

1 s = 'abcdacd'2 for index,i in  enumerate(s):3    if i=='a':4        print('{}的下标:{}'.format(i,index))5 #输出:6 #a的下标:07 #a的下标:4

 

还有一个方法index,它和find作用类似,通过元素找索引,不同点是:找不到指定的字符则会报错!

 

八.默认删除字符串前后的空格

1 s = '  abcd  '2 s1 = s.strip()3 print(s1)#输出abcd

  1.也可以指定删除的字符或者特殊字符,空格也可以指定,注:字符之间的空格、指定字符不能删除

1 s = 'abcd***'2 s1 = s.strip('*')3 print(s1)#输出abcd4 5 #也可以指定多个字符或特殊字符6 s = ' %%abcd***'7 s1 = s.strip(' %*')#指定字符的顺序无关8 print(s1)#输出abcd

  2.因为strip()方法能删除字符串两边的指定字符,所以可以指定只删除字符串左边或右边的字符

#删左边,不动右边lstrip()#删右边,不动左边rstrip()

 

九.统计指定字符的个数

1 s = 'abbcd'2 s1 = s.count('a')3 s2 = s.count('bb')4 print(s1,s2)#都输出1

 

十.分割成列表(字符串转换成列表),默认以空格为分隔符进行分割,当然也可以指定字符为分隔符

1 s = 'a b c d' 2 s1 = s.split()3 print(s1)#输出['a','b','c','d'] 4 5 #注:若分隔符前面没有字符,也会分割成一个空的字符 6 s = ';a;b;c;d' 7 s2 = s.split(';')8 print(s2)#输出['','a','b','c','d']

 

十一.格式化输出

  第一种:

1 s = '我叫{},今年{}'.format('sun','19')#数字可以不用引号引起来2 print(s)

  第二种:利用索引(下标),format里的字符用逗号隔开,下标从0开始

s = '我叫{0},今年{1}'.format('sun','19')#'sun'的下标是0,'19'的下标是1

  第三种:键值对的形式,在format里的字符可以不用按输出的顺序排列

1 s = '我叫{name},今年{age}'.format(age=19,name='sun')

 

十二.替换

1 s = 'abacda'2 s1 = s.replace('a','A')#将所有的a替换成A3 4 #也可以指定次数5 s1 = s.replace('a','A',1)#只把第一个a替换成A

 

十三.判断字符串组成内容

1 #判断字符串是否只由数字组成 2 s = '123' 3 print(s.isnum()) 4  5 #判断字符串是否只由字母组成 6 s1 = 'abc' 7 print(s.isalpha()) 8  9 #判断字符串是否由数字或字母组成10 s2 = '123abc'11 print(s.isalnum())

 

十四.for循环(有限循环):in后面的能迭代的就能循环

1 s = 'abcd'2 for i in s:3     print(i)4 #输出:5 a 6 b 7 c8 d

 while循环可以是无限循环(while 1),加上控制条件

1 s = 'abcdacd'2 i=03 while i

 

 in的其他用法:判断字符串里是否存在某些字符,当然了,有in那么就有not in

1 s = 'azxczcx政治'2 if '政治' in s:3     print('含有敏感词')

 

转载地址:http://opofz.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>