欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python基础学习:字符串认知与应用

程序员文章站 2022-05-04 12:20:07
一.len() 家电维修 len:全写是length,是计算容量的函数;例如a="1234",len(a)=4 如果是中文字符,比如a="哈",len(a)=3,那么怎么显示正确的数目呢?(在python3中不存在这个问题) 方法一: 在中文字符前加u例如:a=u"哈",len(a)值为1 方法二: ......

 一.len()

  len:全写是length,是计算容量的函数;例如a="1234",len(a)=4

 

  如果是中文字符,比如a="哈",len(a)=3,那么怎么显示正确的数目呢?(在python3中不存在这个问题)

 

  方法一:

 

  在中文字符前加u例如:a=u"哈",len(a)值为1

 

  方法二:

 

  a="哈哈"

 

  g=a.decode('utf-8')

 

  print len(g)值为2

 

  也可以直接写成a="哈哈".decode('utf-8'),其实最好是a.decode('utf-8')

 

  注意:

 

  就是在脚本中标明#coding=utf-8,len的值还是按ascii码来计算

 

  比如

 

  #coding=utf-8

 

  d="中文"

 

  print len(d)

 

  执行python test.py的值为6

 

  二.转义符让文本更好处理

 

  要转义的字符前面加个反斜杠

 

  三.字符串前面跟着的小尾巴到底是什么东西

 

  例如:print r"\n"其中的字母r表示不对斜线进行转义,输出为\n

 

  四.访问子字符串

 

  成员有是有序排列的,可以通过下标偏移量访问到它的一个或者多个成员

 

  a="abcd"

 

  print a[0]第一个字符

 

  print a[-1]最后一个字符,也可以是print a[len(a)-1]

 

  a[0:]输出为abcd

 

  a[0:1]输出为a

 

  a[0:2]输出为ab

 

  a[1:3]输出为bc注意第一项不是0,那么输出项是从a[1]开始的3-1位,并不会输出a[3]

 

  a[:-1]输出为abc

 

  五.替换字符串--replace()方法

 

  a="abc"

 

  a.replace('a','hh')

 

  'hhbc'

 

  但是此时print a,输出还是abc,说明replace()并不会改变原变量值,如果想修改原值,可以重新赋值,比如

 

  a=a.replace("a","his"),输出为hisbc

 

  六.查找字符串--find()方法

 

  a.find("hong")如果找到了字符串"hong"会返回一个整型,这个数值是a字符串对象hong第一个字母"h"的下标,如果找不到"hong",会返回-1

 

  如果有多个hong,怎么指定某一个hong呢,例如

 

  a="hong my name is hong"

 

  此时用a.find("hong")输出结果会是0,就是从第0个字符开始的就是hong,怎么找后面的那个hong呢?

 

  a.find("is")输出为13

 

  a.find("hong",13)就会输出is后面的hong了,注意用help(a.find)文档

 

  七.字符串拼接

 

  1.直接用加号来拼接,太耗资源,超级丑陋之千万别用。

 

  2.可选方案之字符串模板

 

  用%s....%来拼接:%s表示要插入字符串,叫做占位符;%后面的字符表示要插入字符串的内容

 

  占位符通常有2种,%s:字符串的占位符,%d:数字的占位符。

 

  例如

 

  1)print"my name is hong,%s"%"i am 18"

 

  2)print"my name is%s%s"%("hong","ten years old")

 

  3)print"my name is hong,i am%d"%18

 

  4)print"this is a%s%s"%(4,10),输出为this is a 4 10.也就是说可以强制把整型转为字符串,小括号里的数据要按顺序写

 

  3.优秀的拼接方案之使用join(),这种方法在参数是变量的情况比较好用

 

  >>>a="a"

 

  >>>b="bcd"

 

  >>>c="12cd"

 

  >>>"".join([a,b,c])

 

  'abcd12cd'

 

  用[]把abc变成一个list,才能用join()进行拼接,直接用join(a,b,c)报错,因为join()函数只能有一个参数

 

  注意:

 

  join()函数基本语法:'sep'.join(seq),表示以sep为分隔符,将seq所有的元素合并成一个新的字符串

 

  sep表示分隔符,可以为空;

 

  seq表示要连接的元素序列,字符串,元组或者字典,也就是说上面的"".join([a,b,c])也可以把参数写成元组"".join((a,b,c))

 

  4.format格式化方式

 

  b="this is{}{}".format("my","apple")为什么要用format

 

  print b

 

  输出为this is my apple

 

  如果想调整一下输出参数的顺序,那么可以这样写

 

  b="this is{1}{0}.format("my","apple"),那么输出结果就是

 

  this is apple my

 

  需要注意的是参数从0开始

 

  算参数位置太麻烦,有时候还出错,来种更人性化的方法

 

  b="this is{whose}{fruit}".format(fruit="apple",whose="my")

 

  print b

 

  输出为this is my apple

 

  5.还有一个方法,字典来了。

 

  a="this is%(whose)s%(fruit)s"%{'whose':'my','fruit':'apple'}

 

  其中whose:my,whose是key位,my是word位