十、str的索引、切片和str常用的操作方法(重点)

1.str的索引、切片

(1)按照索引取值:

s1[index](取出来的类型都是str)

从左至右有顺序,下标,索引(标志从0开始 0123......)

比如:

s1 = 'python全栈22期'
s2 = s1[0]
print(s2,type(s2))           #p <class 'str'>
s3 = s1[2]
print(s3)                         #t
s4 = s1[-1]
print(s4)                         #期

 

(2)按照切片取值(顾头不顾尾

s1[start_index : end_index+1](第一位是0时可以省略不写)

比如:

s1 = 'python全栈22期'
s5 = s1[0:6]
s5 = s1[:6]
print(s5)            #python(第一位开始,可省略不写;n是第5,要后延1位)
s6 = s1[6:]
print(s6)            #全栈22期(一直到最后一位,最后一位可省略不写)

 

(3)切片步长:

s1[start_index : end_index+1:步长]

比如:

s1 = 'python全栈22期'
s7 = s1[:5:2]
print(s7)                  #pto(与切片原理一样,加入了步长,可以隔一个输出下一个)
print(s1[:])               #python全栈22期 (全部输出)

 

(4)倒序,反向按照切片步长:

s1[start_index : end_index后延一位:步长(负的)]

比如:

s1 = 'python全栈22期'
s8 = s1[-1:-6:-1]
print(s8)                      #期22栈全

#思考:倒序全部取出来?
s1 = 'python全栈22期'
s9 = s1[::-1]                 #期22栈全nohtyp

 

练习:

有字符串s = "123a4b5c"

通过对s切片形成新的字符串s1,s1 = "123"
s1 = s[:3]
print(s1)
通过对s切片形成新的字符串s2,s2 = "a4b"
s2 =s[3:-2]
print(s2)
通过对s切片形成新的字符串s3,s3 = "1345"
s3 =s[:-1:2]
print(s3)
通过对s切片形成字符串s4,s4 = "2ab"
s4 =s[1:-2:2]
print(s4)
通过对s切片形成字符串s5,s5 = "c"
s5 =s[-1]
print(s5)
通过对s切片形成字符串s6,s6 = "ba2"
s6 =s[-3:0:-2]
print(s6)

 

2.str 字符串常用的操作方法

不会对原字符串进行任何操作,都是产生一个新的字符串

(1)upper (大写)lower (小写)

s1 = s.upper()
s1 = s.lower()

# 应用:
username = input('用户名')
password = input('密码')
code = 'QweA'
your_code = input('请输入验证码:不区分大小写')
if your_code.upper() == code.upper():
  if username == '太白' and password == '123':
    print('登录成功')
  else:
    print('用户名密码错误')
else:
  print('验证码错误')

 

2)startswith(开头) endswith(结尾)

就是判断某某开头(结尾)是否正确

s.startswith('内容')

s.endswith('内容')

比如:

 

s = 'taiBAifdsa'
print(s.startswith('t'))
print(s.startswith('taiBAi'))

 

#结果都是True,是t      taiBAi  开头

(了解)加入切片:

比如:

s = 'taiBAifdsa'
print(s.startswith('B',3,6))

#结果都是True,将s切片,表示第3位到第5位(顾头不顾尾加1=6)的开头是B

 

(3)replace (替换)

s.replace(被替换内容,要替换的内容)

比如:

msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅'
msg1 = msg.replace('alex','太白')            # 默认全部替换
msg2 = msg.replace('alex','太白',2)         # 从左到右替换前2个
print(msg1)
#太白 很nb,太白是老男孩教育的创始人之一,太白长得很帅
print(msg2)
#太白 很nb,太白是老男孩教育的创始人之一,alex长得很帅

 

(4)strip (去除空白):空格,\n(换行符),\t(TAB键)

s.strip()

比如:

s4 = ' \n太白\t'               #太白前边既有空格又有换行
print(s4)

s5 = s4.strip()
print(s5)                         #将空格、换行全部清除

(了解)可以去除指定的字符

比如:

s4 = 'rre太r白qsd'
s5 = s4.strip('qrsed')
print(s5)
#结果为:太r白,因为规则是:从前往后、从后往前同时进行,遇到剔除的内容就剔除,直到遇到不用剔除的内容停下,所以“太r白”中间的“r”没有剔除

 

(5)split(非常重点)(分割)

s.split('默认空格,或指定的分割符号或内容')

默认按照空格分割,返回一个列表

可以指定分隔符,进行分割

str——>list

比如:

s6 = '太白:女神:吴超'
l = s6.split(':')
print(l)
#结果:['太白', '女神', '吴超']

(了解)

s6 = ':barry:nvshen:wu'
print(s6.split(":",2))
#结果:['', 'barry', 'nvshen:wu'],让前2个分开,后面不分开

 

(6)join(非常好用)(加入)

'所要加入的内容'.join(s)

s1 = 'alex'
s2 = '+'.join(s1)
print(s2,type(s2))
#结果:a+l+e+x <class 'str'>

list——>str(列表元素必须是字符串)

比如:

l1 = ['太白', '女神', '吴超']       # 前提:列表里面的元素必须都是str类型
s3 = ':'.join(l1)
print(s3)
#结果:太白:女神:吴超

 

(7)count(计数)

s.count('要计数的内容')

比如:

s8 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa'
print(s8.count('a'))
#结果:5 ,即为a出现了5次

 

(8)format(格式化输出)

  • 第一种用法:

msg = '我叫{}今年{}性别{}'.format('大壮', 25, '男')

print(msg)

#结果:我叫大壮今年25性别男

  • 第二种用法:

msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮', 25,'男')

print(msg)

#结果:我叫大壮今年25性别男我依然叫大壮

  • 第三种用法:

a = 100

msg = '我叫{name}今年{age}性别{sex}'.format(age=a,sex='男',name='大壮')

print(msg)

#结果:我叫大壮今年100性别男

note:注意格式,s = ‘.....{a}....{b}......{c}...’.format(a=xxx,b=xxx,c=xxx),别忘了中间的{}

 

(9)is 系列

name.isalnum()          #字符串由字母或数字组成
name.isalpha()           #字符串只由字母组成
name.isdecimal()       #字符串只由十进制组成

name.isdigit()             #字符串只由十进制组成(多一个bytes类型,b'123',返回True)

 

比如:

s1 = input('请输入您的金额:')
if s1.isdecimal():
  print(int(s1))
else:
  print('输入有误')
#结果:会显示用户输入的金额,如果有非数字,会显示输入有误,结束程序

 

(10)in

s1 = '老男孩edu'
print('老' in s1)
print('老男' in s1)
print('老ed' in s1)
print('老ed' not in s1)
#结果:
True
True
False
True
(必须是相连的)

 

(11)len:获取可迭代对象的元素总个数

len(s)

比如:

s1 = '老男孩教育最好的讲师:太白'

print(len(s1))
#结果:13

练习:将’老男孩教育最好的讲师:太白0’竖着显示:

s1 = '老男孩教育最好的讲师:太白'
index = 0
while index < len(s1):
  print(s1[index])
  index += 1
#结果:












 3.str操作方法的补充

str 补充的方法:(练习一遍就行)

  • capitalize:首字母大写,其余变小写

    s1.capitalize()

  • swapcase:大小写翻转

    s1.swapcase()

  • title:每个单词的首字母大写

    s1.title()

  • center:是内容居中

    s1.center(长度,填充的东西)

  • find:通过元素找索引,找到第一个就返回,找不到就返回-1

    s1.find('a')

    index:通过元素找索引,找到第一个就返回,找不到就报错

    s1.index('o')

# str :补充的方法练习一遍就行。
s1 = 'taiBAi'
# capitalize 首字母大写,其余变小写
print(s1.capitalize())
# swapcase 大小写翻转
print(s1.swapcase())
# title
msg= 'taibai say3hi'
print(msg.title()) #每个单词的首字母大写

s1 = 'barry'
# 居中
print(s1.center(20))
print(s1.center(20,'*'))

# find :通过元素找索引,找到第一个就返回,找不到 返回-1
# index:通过元素找索引,找到第一个就返回,找不到 报错
print(s1.find('a'))
print(s1.find('r'))
print(s1.find('o'))
print(s1.index('o'))

 

posted on 2019-05-03 22:36  雨后清明  阅读(882)  评论(0编辑  收藏  举报

导航