python字符串索引赋值_Python 字符串相关操作与方法

Python 字符串相关操作与方法

1. 字符串的索引与切片

字符串从左至右是有顺序的,我们通过索引来确定它的位置。索引类似C语言中的下标

s[index]

切片是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串

s[start_index : end_index+1 : step]

顾头不顾腚(结尾得往下取一位)

倒序,需要使用反向步长s[::-1]

索引无论使用正数还是负数都仅表示位置。这里是否使用反向步长需要注意一下

print(a[-1:0]) #不能从-1 到 0

print(a[-1:-5]) #不能从-1 到 -5

print(a[-1:-5:-1]) #以上可以加上步长 #倒序

print(a[-5:-1]) #或从左向右

原因在于默认步长为1,所以不能直接从右向左

注意:索引、切片出来的数据与原来是没有联系的。

s2 = s1[0]

s2 与 s1 没有联系

s2的内容是另开辟的

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

注意: 新字符串与原字符串没有联系,这些操作都是产生一个新的字符串。

count

计算字符串中参数出现的个数

res = a.count("a")

res = a.count("a",4,8) #对res的切片内容进行a的计数

startswith 与 endswith 判断以什么为开头,什么为结尾

a = 'abcdefghijklmnopqrstuvwxyz'

print(a.startswith("a")) 返回True

print(a.startswith("d")) 返回False

print(a.startswith("d",3,6)) 返回True

print(a.endswith("z")) 返回True

split

形成一个不包含这个分割元素的列表(默认按照空格分格,返回一个链表)

str --->list

a = 'abcdefghijklmnopqrstuvwxyz'

b = a.split()

print(b,type(b))

##['abcdefghijklmnopqrstuvwxyz']

c = a.split('f')

print(c,type(c))

##['abcde', 'ghijklmnopqrstuvwxyz']

join (iterate)非常好用 联合

list ---> str

iterate 是可迭代对象

前提:使用join方法的对象必须是字符串!!!

s1 = 'alex'

s2 = '+'.join(s1)

print(s2) #a+l+e+x

l1 = ['taibai','nvshen','wuchao']

s3 = ':'.join(l1)

print(s3) #taibai:nvshen:wuchao

format的三种玩法,格式化输出

res = '{}{}{}'.format('naqin',18,'male')

naqin18male

res = '{1}{0}{1}'.format('naqin',18,'male')

18naqin18

res = '{name}{age}{sex}'.format(name='naqin',age=18,sex='male')

naqin18male

strip 移除字符串头尾指定的字符

默认去除空格,tab,\t,\n

去除指定的字符 (从前往后从后往前,遇到一个清除一个,若遇到不含参数内的字符时停止)

s4 = 'rre太r白qsd'

s5 = s4.strip('rqsed')

print(s5) #太r白

只能删除开头或是结尾的字符,不能删除中间部分的字符。

replace

replace方法不是对原来的字符串做改变,而是新产生一个改变后的字符串,所以依旧需要赋值替换。

msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅'

msg1 = msg.replace('alex','太白')

#太白 很nb,太白是老男孩教育的创始人之一,太白长得很帅

msg1 = msg.replace('alex','太白',1) 默认全部替换

is系列

应用:购物车

a.isalnum() #字符串由字母或数字组成

a.isalpha() #只由字母组成

a.isdecimal() #只由十进制组成

find() 返回找到的元素的索引,找不到返回-1

index()返回找到的元素的索引,找不到报错

upper(所有字母大写,中文或数字忽略) 、lower(所有字母小写)

应用:验证码(不区分大小写)

capitalize(首字母大写)、swapcase(大小写翻转)、title(每个单词大写)

center

st = 'runoob'

print(st.center(50,'*'))

**********************runoob**********************

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值