字符串

  • 字符串严格意义上来讲是单个字符组成的序列

序列的操作

  • 获取长度:len(str)
  • 通过索引取值:str[0]
  • 反向索引:str[-1] #序列倒序索引从-1开始
  • []内可以为任何表达式,不仅仅是一个数字常量
  • 分片:str[1:3],包含左不包含右,str[1:3]截取的为str[1]+str[2]
  • 分片中左括号默认为0,右括号默认为str的长度,常用变体:

分片操作

s = spam
s[:3] > 'spa'
s > "spam"
s[0:3] > 'spa'
s[:-1] > "spa"
s[:] > 'spam'
s[1:] > 'pam'
d = "123456789"
d[1:7:2] > '246'切片然后以2的步长取值
d[::-1] > 倒序取值,即把字符串反转过来
d[7:1:-2] > '864'反向切片 
  • 字符串具有不可修改的特性,如果需要对字符串进行修改,另外使用+进行字符串拼接
str = 'spam'
str = s[:1]+'z'+s[2:] > 'szam'
s * 4 > 'spamspamspam'
  • 字符串find方法,查找指定字符(串)在母字符串中的位置:查到返回索引,未查到返回-1- replace方法
str = 'spam'
str.find('pa') > 1
  • 字符串的join方法
#join方法可以把一个列表,字典等的元素拼接成一个字符串,元素需要为字符串,字典只会拼接键
>>> s = {'1':'2','3':'4'}
>>> d = "".join(s)
>>> d
'13'
  • 字符串replace方法:替换字符串指定子字符串,但是并不改变原字符串
s = 'spam'
r = s.replace('pa','xyz')
t = s,r
print(s,r,t) > 'spam'   'sxzm'  ('spam','sxyzm') #t为两个字符串组成的元组
  • 字符串通过分隔符拆分方法、大小写变换方法、测试字符串内容方法 去掉字符串后的空格字符
line = 'aaa,bbb,ccc'
line.split(',') > ['aaa','bbb','ccc'] #通过,进行字符串的分隔
line.upper() > 'AAA,BBB,CCC' # 边小写,lower
line.isalpha() > true #数字:isdigit,如果不全为字母则为Flase,数字同逻辑
s = "qwer\n" s.rstrip() > 'qwer' #去尾部空格

常见的字符串常量及表达式

  • s = '' 空字符串
  • s = "spam's" 单双引号相同,混用时以第一个为准
  • s = 'a\np\tr\x00m'#\n为换行,\t为一个tab,\x为十六进制表达式,后接两个数字表示编码
  • s = '''123''' #可以换行的一长串字符串
  • s = r'\n\t\x' #加r表示忽略转义字符,本质是系统处理时自动把字符串替换为'\n\t\\x'
  • s[i],s[i:j],len[s] #索引,分片,求长度,注意:字符串可读不可写,s[2] = "1"会报错
  • s.find("pa") #搜索子字符串位置的索引,未找到会报-1
  • s.rstrip() #只用于去掉字符串末尾的字符,默认为空格
  • s.replace('pa','xx') #替换指定字符串,s.replace('pa','')可用于删除指定字符
  • s.split(",") #以指定字符分割字符串
  • s.isdigit() #检验是否为纯数字
  • "spam".join('12345') #以join的每个字符开头复制一次字符串:'1spam2spam3spam4spam5spam
  • s.endswith(s1) #验证s是否为s1结尾的字符串
  • for x in s ; print (x) #迭代输出
  • "pa" in "spam" # 成员关系
  • [s*2 for s in "spam"] # 迭代生成列表['ss', 'pp', 'aa', 'mm']
  • map()

字符串的长度

len("abc\n\t\x00") #值为6,及整个转义符号视为一个长度
len(r"abc\n\t\x00") #值为11

字符串的格式化

  • "a %s sport %d" % ('dd',1)
  • "a {0} {1}sport".format("ee",'dd')
  • 通过字典对字符串进行格式化
reply = '''
Greeting 
hello %(name)s!
your age is %(age)s
'''
values = {"name":"bob","age":40}
print(reply%values)
posted on 2019-10-31 09:10  盈盈的月儿  阅读(266)  评论(0编辑  收藏  举报